Skip to main content

Full text of "CPC Magazine (French) Issue hs08"

See other formats


COULEUR DE" - 

528 LOCATE 8, 18: PRINT "CHACUNE B'EL > ZE- 
LE EST PRECISEE . PLUS HAUT EST INS x 
CRITE LA VALEUR" 

53» LOCATE B.28:PRINT "CE LA RE5I5T >YK 
ANCE , ENFIN A DROITE SE TROUVE LA 
FENETRE DE TRA-" 

540 LOCATE 8, 22: PRINT "V'fllL OUI PER >¥H 
«ET DE CALCULER LA VALEUR OU DE DON 
NER LA COULEUR" 

550 LOCATE 8,24:PRINT "SUIVANT LE M >8E 
ODE CHOISI (TOUCHE CD: MODE CHIFFRE 
S OU MODE COULEURS) " 
568 LOCATE 1,25:PRINT "UNE TOUCHE . >GJ 

579 CALL &.BB86 >ME 

586 BORDER 0:INK 0,9:INK 1,0 >VD 

590 MODE 2 >JD 

660 ■ DESSIN DE LA RESISTANCE :>R6 

618 ORIBIN 230,358 >HJ 

620 DEB >RE 
630 FOR F?.=70 TO 290:PLOT COS'.FWH >KB 
2,SIh(F7.)*12:NEXT 

640 PLOT 4,1 i : DRA«R 50,0 >RA 

650 PLOT 4,-il:DRAWR 50,0 >TT 

660 PLOT 14, 11:DRAWR 0,-190 >UU 

679 PLOT 9,11;DRAWR 0,-80:DRA«R -59 >FC 
,-29 

680 PLOT 19,11:DRAWR 0,-B0:DRAWR 50 /FF 
,-20 

690 PLOT -12,0:DRAHR -40,0 >UL 
790 ORIBIN 288,359: FOR F7.=l TO 110: >ME 
PLOT C0SiF7.)*i2,SIN(FM*12:NEXT 

719 FOR FX=250 TO 360:PLOT CDS(FÏ)* >UE 
12,SINiF7.)*12:NEXT 

720 PLOT 12,0:DRAWR 49,0 >RV 
730 ' DESSIN ENCART DES TABLEAUX >TA 
740 ORIBIN 9,9:DRA» 639,9:DRAWR 0, >UN 
399:PLÛT 0,0:DRA«R 0,399:DRAHR 639, 

9 

750 PLOT 160,0:DRAHR 9,399 >UM 

769 PLOTR -169,-169:DRA«R 399,9:PL0 >LH 
TR 9,-30:DRANR -399,0:PLOTR 399,199 
:DRAWR 0,-399 

770 LOCATE 22,10:PRINT "NOIR" >XC 
780 LOCATE 39,10:PRINT "NOIR" >XC 
790 LOCATE 38, 19: PRINT "OR" >VD 
890 LOCATE 28,2:PRINT "VALEUR : >PV 

";CHR$!19D 
810 ' TABLEAU DES COULEURS >RK 
B20 LOCATE 26, 12: PRINT "TABLEAU DES >8N 
COULEURS" 
830 LOCATE 24,15:PRINT "0 - NOIR >NY 

5 - VERT" 
840 LOCATE 24,17:PRINT "1 - MARRON M 
■ 6 - BLEU" 
B59 LOCATE 24, 19: PRINT "2 - R0U6E >Rlj | 
7 - VIOLET" 



,860 LOCATE 24,21:PRINT "3 - ORANBE » 
' 8 - 6RIS" 
870 LOCAIE 24,23:PRINI "4 - JAUNE ;t'Û. 

9 - BLANC" 
880 ' TABLEAU DES MULTIPLICATEURS >TG 
890 LOCATE 4,12:RRINT "MULTIPLICATE >KY 
URS" 

990 LOCATE 2, 15: PRINT "0 - s 1 ":CH >JX 
R$1191) 

910 LOCATE 2,16:PRINT "1 - s 10 ":C >KO 
HR*(191! 

929 LOCATE 2,17:PRINT "2 - x 100 ": >LK 
CHR*U91> 

939, LOCATE 2,18:PR1NT "3 - s 1000 " .'MF 
;CHR*(191) 

940 LOCATE 2,19:FRINT "4 - •/. 10000 >NC 
":CHR*(191) 

950 LOCATE 2.20:PRINT "5 - ;< 100090 ;NZ 
";CHR*(191) 

969 LOCATE 2,21:PRINT "6 - x 109000 ;>PY 
":CHR*(191! 

970 LOCATE 6,23:PRINT "OR : s 0.1 " >MP 
:CHR1(191) 

980 ' TABLEAU EXPLICATIF 



>TH 
:PRINT "R E S I S T >F« 



990 LOCATE 
R" 

1000 LOCATE 2,6;PRINT "Z X : COUL1/ >JA 
CH1F1" 

1910 LOCATE 2,7:PRINT "C V : COUL2; >JC 
CHIF2" 

1020 LOCATE 2,8:PRINT "B N : COUL3/ >KB 
MULT. " 

1930 LOCATE 2,10:PRINT "ENTER : VAL >JH 
IDER" 

1940 INK 0, 13 >AC 

1050 ' FENETRE TRAVAIL >XJ 

1060 WNDOM *1, 51, 79,2.24 >TF 
1079 CLS tl >LC 

i960 DATA OR,0. 1,0, NOIR, 1,1, MARRON, >FY 
10,2,ROUSE,190,3,ORANSE,1000,4,JAUN 
E, 10900, 5, VERT, 100000, 6, BLEU, 108909 
0,7,VIOLET„8,GRIS,,9,BLANC, 
1090 RESTORE 1080 >LU 

1190 READ COUL$i9),MULT*(0) >VY 
1119 FOR F=l TO 19:READ NRCLSF1.COU >ZC 
L*(F),MULT*(F):NEXT 

1129 MDEC=1 >VJ 

1130 LOCATE *1,10,12:PRINT*1,"UNE T >KX 
OUCHE" 

1149 CALL MB96:SÛSUB 1219:MDCI="CH >VA 

IFFRE":BOTO 1190 

1159 K«=INKEY*tIF K*=" THEN 1159 >Z« 

1168 IF UPPER»(K$i="C" THEN MDEC=MD >FC 

EC+1:IF MDEC)2 THEN MDEC=1 

1170 IF MDEC=1 THEN MDC*="CHIFFRE" >YF 

ELSE MDC*="COULEUR" 

\ 189 ON MDEC GOSUB 1210, 1439 >VC 

1190 LOCATE #1 , 3, 23: PRINT»! . "MODE : >BK 



. ":MDM;" TOUCHE <C>" 

' 1200 GOTO 1150 >LH 

1210 'MODE COULEUR >XB 

1220 LI8NE=1 ,'FH 

1230 CLS#l:LOCATE #1,3,23:PRINT#1," >V2 

MODE : COULEUR" 

1240 F=1:S=1:H=0 )6J 

1250 LOCATE tl,3,5:PRINTtl, "COULEUR :>BR 
1 : ";C0UL$(F);SPACE»(6-LENlC0UL$t / 

Fi)) 

1260 LOCATE «1,3,13:PRINT#1, "COULEU >CV 

R 2 : ";C0UL*(6i;SPACE*(6-LEN!CÛUL* / 

(S))) 

1270 LOCATE M,3,20:PRINT#1,"COULE'I >CX 

R3 : ":C0UL*(H);SPACE*(6-LEN(C0UL$ 

(H) ) ) 

1289 Kt=INKEY»:ÏF K$="" THEN 1288 >ZE 

1298 IF UPPER»(K*)="Z" THEN F=F-1:I >OU 

F F<1 THEN F=10 

1300 IF UPPER»(K$)="X" THEN F=F+1: I >QF 

F F>10 THEN F=l 

1310 IF UPPER*(K*i="C" THEN 6=6-1:1 ;>Q0 

F 6<1 THEN G=10 

1320 IF UPPER*(K*)="V" THEN G=6+1:I >8K 

F 6>10 THEN 6=1 

1330 IF UPPER$(K$)="B" THEN H=H-1:I >PD 

F H<0 THEN H=7. 

1349 IF UPPER*(K$Ï="N" THEN H=H+1:I >PT 
F H)? THEN H=0 

1350 IF K*=CHR*(13) THEN 1370 >VQ 
1360 ON LIGNE GOTO 1259,1470 >VB 
1370 VALEURl»=STR$(NRCL(F)i:VALEUR2 >XJ 
S=STR$ (NRCL (G) ) : VALEUR3*=VALEUR1$+V 
ALEUR2I: VALEUR=VAL (VALEUR3$i »VAL (MU 
LT*(H!) 

1388 LOCATE 22,10:FflINT COULKFiiSP >CD 

ACE*(6-LEN(C0UL*iF))! 

1390 LOCATE 30,10:PRINT C0UL$(6);SP >CF 

ACE*(6-LEN(COUL*(G!)> 

1409 LOCATE 38,18:PRINT COUL*(H):SP >CH 
ACE*(6-LEN!C0UL*(H))) 

1410 LOCATE 37,2:PRINT VALEURjCHR»! >LL 
32!;CHR*(191):SPACE*(11-LEN(STR*(VA 
LEUR) +CHR$ C32) +CHRÏ ( 1 91 ) ) ) 

1429 RETURN >FA 

1438 'MODE CHIFFRE >YA 

1449 LI6NE=2 >GC 

1459 F=1:6=1:H=0 >HB 

1469 CLS#1: LOCATE #1,3,23:PRINT#1, " >VL 
MODE : CHIFFRE" 

1470 LOCATE #1,5,5:PRINT#1, "CHIFFRE >UA 
1 : "iNRCL(F) 

1480 LOCATE #1 , 5, 13: PRINT#1 , "CHIFFR >VA 
E 2 : ";NRCL<6) 

1490 LOCATE #1,2,20:PRINT#1,"MULTIP >PE 
LICATEUR : "; MULTt (H! ; SPACE$ (S-LEN C 
MULT$(H))i; 
' 1500 BOTO 1280 >MEB 



D 



U 



DIVISION 



T210 IF 
; PRINT 



•Hervé DURAND 




Voici un programme de démonstration de 
division (sans virgule) avec participation de 

l'élève. 

L'enfant choisit un dividende et un diviseur 

de 6 chiffres maximum. L'ordinateur dessine 

la division et demande le premier quotient, 

s'il est bon l'ordinateur pose la soustraction 

et le reste et attend le quotient suivant. 



l'enfant trouve du 
| premier coup il gagne 5 
"centimes (variable c$ 
définie par les symboles du début) et 
la somme gagnée s'affiche en fin de 
partie ; donc élève surdoué s'abstenir. 

5 '***** DIVISION ***** >FE 

18 SYMBQL 248. 8, 8,3,28, 32, 64, 128. 12 >CA 

8 

28 SYMBOL 249,8,126,129,8.126,98,96 

,68 

38 SYMBOL 258,8,8,192,56,4,2,1.1 >YA 

48 B$=CHR$(24B)tCHR$(24?)+CHR»(259) >BR 

50 SYMBOL 251,128,128.192,96,68,31, >DN 

3,8 

68 SYMBOL 252,6.182.68,8,8.129,255. >DA 

126 

78 SYMBOL 253,1,1,3,6,68,248.192.8 >AF 

88 -f*=CHRÏ(251 i+CHR* (252Ï +CHR* (253i >BM 

98 c*=e$+CHR*iB)+CHRS<S)+CHR»i8S+CH >KH 
R$(18)t« 



La partie musicale en fin de liste est 
censée rappeler la chute d'une pièce de 
monnaie, vous constaterez qu'elle est 
perfectible, je fais confiance pour cela 
à l'imagination des lecteurs. 



■DZ 



188 PRINT CHR$i7) 


;>LF 


1» ON ERROR 80T0 100 


>PV 


128 MODE 1 : HINDOU #3,6,40,6,25:z=0 


>QJ 


:resut=8:s=0 




138 HINDOU #4,28,39.14,24 


>TL 


148 HINDOU #5,30.3B.6,15:PEN #5,2 


>ZJ 


158 HINDOU #2,5,35,2, 4: PAPER »2,2:P 


>PT 


EN #2,3:CLS 12 




166 FOR i=l TO 6:a(i)=8:a$(i>="0":N 


>FE 


EXT i 




178 LOCATE #2,18,2:PRINT #2."D I V 


>NF 


I S I N 




180 PEN 1: PAPER 8: BORDER 18 


m 


198 LOCATE 19,t8:INPUT "dividende l 


>BN 


iax=6!";a*:al=LENia*) 




288 FOR i=l TO aka«*iii=MID*ia$.i. 


;>XH 


1): IF ASC(a»»(i)K48 OR ASCiatrttil) 




>57 THEN 100 ELSE NEXT i 





HEN CLS#3: LOCATE 18.28 . 
îF'RINT "dividende trop qrand! ; ':BÛTO 
198 



viseur (ma .-D 



V 



220 LOCATE 18,12:INPUT 

x=6)":b*:l=LEN(b») 

230 FOR )=1 TO l:b«*(.j)=MID$(bl..!.l >VA 

) : IF ASC(b»*(.i)K4B ÛR ASC foi»$i,i )i> 

57 THEN 198 ELSE MEiT .1 

248 IF 1)6 THEN CLS#3: LOCATE 10.22 >EF 

:PRINÎ "diviseur trop qrand!":BÛTO 

228 

250 Pû=l+l:dit=al-l:»i=19-al-l >ZH 

268 HINDOU #l,Ni,19.6.12+3*Dit >ÏA 

278 a=VALia»):b=VALibt! >RK 

288 IF b=l THEN LOCATE 10,24:PRINT >ÏM 

"petit fiqolo !":F0R i=l TO 1088:NE 

XT i:CLS#3:S0T0 228 

298 IF aib THEN LOCATE 10 ,24: PRINT «U 

"dividende < a diviseur" :F0R i=i 
TO 1888:NEXT i:CLS#3:GOT0 198 
300 60SUB 638 >HB 

310 restera*: restera ,'RJ 

320 FOR i=i TO al:a*ii)=LEFTstat.i) ,'CV 
ia(ii=VALia$ii!!:NEXT i 
330 FOR 1=1 TO l:b*(i)=LEFT$(bl.iil >BB 
b!ii=VALlb*(i!):NEXT l 
340 n=i:i=0 /VF 

358 IF n>l THEN BOSUB 588: ELSE c=l >AV 
368 FOR 1=1 TO LEN(reste$l >UA 
370 reste*(il=LEFT«(reste*.iiireste >BX 
(i)=VAL(reste*(i)) 

380 NEXT i >m 

398 IF restetlXb AND reste<l+i)C0 >MD 

AND n=l THEN c=2:l=l+l:po=PO+l 
408 IF n>l AND reste{cK=blll AND r ;AE 
este(c+l)<>0 THEN c=c+l 
418 resu-re5te(c)/b(l!;re5u=Fnire5 >HG 
u) 

420 IF n=l THEN reste=resteili:rest >NC 
e»=STR$ireste):PLOT 288-16*ai.3è4:l 
e- (LEN(reste»)-l)*16:DRAWR le, 0.3: 

DRAHR 8,16:DRAWR -le,8:DRAWR 0,-16 

438 IF n>l THEN lec= LEN( reste» (cl) >NR 
-kORISIN «i*16,19*16:PL0T (p-l)*16 
,16*U-q):DRANR lecH6,0:ORIGIN 0,0 
:M0VE 336,304:DRA«R 16,0 
440 IF resu*b>reste THEN resu=resu- >8E 
llfflTO 448 

450 0RI6IN 8,0:MOVE 422,8:BRA« 634, >VZ 
8,3:DRAW 634,280:DRAW 422,200:DRA« 
422,8: jo=0:6OSUB 838 
468 resut =resut*18+resu:L0CATE 21, >W 
8: PRINT resut 

478 aa=re5u*b:aa$=STR»iaa)::!=LEN(aa >JB 
*)-l 
♦ 488 reste=reste-aa >PL 



V^ 



490 reste$«STRJ(reste):rx=LENtreste 

500 p=po-x:q=n+l:Pq=aa:6ÛSU6 748 

518 q=q+l:LOCATE #l,p+i.q:PEN #1,2 

:PRINT Kl,STRING$(x,CHR*il54ii:PEN 

•1.1 

520 p=po-rx:q=q+l:pq=reste:GOSUB 74 

9 

536 IF aU+Hn)=0'TH£N BOSUB 760:60 

SU8 90») 

546 IF resten) THEN p=p+l 

55») reste=restWlê+ta(l+l+iii-(a(l+« 

)*10)) 

560 rests*=5TRf (reste) :pq=reste:60S 

UB 74a 

570 n=n+3:«=mtl:SBT0 350 

590 FOR 1=1 TO LENia») 

600 reste(ii=0:re5tei(i)="0" 

61» NEXT i 

620 PO=PO+i: RETURN 

638 CL5 #3 

640 PEN 2:F0R i=l TO 3*dif+3 

650 LOCATE 20,5+i:PRINT CHR*(149):N 

EST i 

660 LOCATE 20.7:PRINT CHWI151) 

670 FOR 1=1 TO 1+dH 

68» LOMTE 20+i,7:PRINT CHR*(1541i« 

EXT l 

690 PEN 1 : LOCATE #1,2,1:PRINT «1, a 



■Hf $ 



QD 



700 LOCATE 22,6:PR1NT b* >TK 
710 PRINT #5, "m******"; >YK 
"* SCORE *": 



720 LOCATE # 5,3,4:PRINT#5.SC0 >YC 

730 RETURN >ZF 

740 IF P=» THEN P=l >NK 

750 LOCATE «,P,q:PRINT #l.pq:RETUR >FR 

N 

760 PRINT CHR*(7i:PEN 2:PAPER 3 >¥F 

770 LOCATE 21,8:PRINT CHR$(24kresu >FL 

780 FOR 1=1 TO 200; NEXT i >RC 

790 2=1+1 >HE 

800 IF :O10 THEN 770 ELSE PRINT C >DE 

HR*<24i;60SUB 940:RETURN 

810 PAPER 0iPEN 1: RETURN >UC 

820 FOR h=l TO 1200:NEÏT h:CL5#4 >ZK 

830 PRINT #4. "combien de tois":b," ,>XU 

dans": reste 

840 LOCATE 22+m, Si INFUT "",,1 >WE 

850 IF j Oresu AND jo=3 THEN CLS* >BA 

4:PRINT# 4, "non c'etait";resu: .10=0: / 

RETURN 

860 IF j<resu THEN CLS » 4:PRINTt 4 >W1 

,,"non trop petit", "reessave":jcF j 



jo+UBOTD 820 

870 IF j=resu AND ,10=0 THEN CLS * 4 >QK 
:PRINT I 4, "oui": BOSUB 920:RETURN 

880 IF .presu THEN CLS#4:PRINT #4.C >BÛ 
HR$(7);"oui":RETURN 

890 IF j>resu AND ji=resteic)/b<lSA >ER 
ND resu <>0 THEN CLS#4:PRINT# 4, "no 
n mais j'aurai fait la inertie e 
rreur"iPRINT# 4, "reessaye": jo=jo+l: 
60T0 S20:ELSE CLS #4:PRINT # 4. "non 
trop grand", "reessaye": jo=,io+l: 
SOTO 820 

900 PRINTI4, "une autre ? to/nj " M> 
910 J»=INKEV*:IF UPPER$( j*)="0" THE :>KU 
N 90 ELSE IF UPPER*U$!="N" THEN 
930 ELSE BOTO 910 
920 BOSUB 940:s=s+l:SCO=SCO+5:LOCAT >Ufl 
E 3,6+niPRINT c*:LOCATE #5.3,4:PRIN 
T#5,SCD:RETURM 

930 CLS#4;PRINT I4,"tu as qaqne ";s >NK 
co: i xentiies":sco=0:END 
940 EN! 4.1,0.1: ENV 4,1.13.1,12.-1 ;GE 
,4:ENV 5,1,13,1.1,0,16,12,-1,4 
950 SOUND 129. 36,0,15, 4. 4,5:F0R i=i ;AF 
TO 100:NEXT i:SOUND 129.34,0,15,4. 
4,5:F0R i=l TO 100:NEXT i: 
960 SOUND 129,32,0.15.5,4.5;FOR 1=1 >ZJ 
TO 200:NEXT ilRETURN 
970 END >TK« 




LES COMMANDES 

• Flèches G & D : choix du sens de 
formation du train au niveau de la 
page de présentation. Ensuite 
déplacement du curseur sur les 
formes ou les couleurs. 



• ESPACE : pour valider. 

• COPY : pour corriger (efface le 
dernier wagon affiché). 

• ESCAPE : pour revenir à la page 
de présentation 

• O & N ; rejouer ou abandonner 
en fin de partie. 



LE PETIT 
TRAIN 

// s'agit d'un éducatif 
de niveau maternelle 
(formes & couleurs), 
inspiré (fortement) 
d'un programme paru 
dans "MOS POUR 
TOUT PETIT" de D. 
NIELSEN. 
Le but est de 
reconstituer un train 
en formes et en 
couleurs. 

•Pierre MAROT 



aj 



18 ' LE PETIT TRAIN - Pierre >LA I 
MftROT (d après D.NIELSEN) 

28 ' >LB 

38 ON BREAK SOSUB 46:G0T0 118 >« 

48 RUN >PD 

58 'M******************* MODE D'EM >LE 

PLOI ****************************** 
********** 

68 ' : Choix du sens d'à >LF 
rrivee des voitures 

78 ' : Déplacement de la >LG 
flèche 

88 ' ESPACE : Valider >LH 
98 ' COPY : Annuler la derme >LJ 
re voiture 

188 ' ESC(2 fois): Retour au choiK >RB 
du sens d'arrivée des voitures 
118 '«M*********************** INI >RC 
TIALIBATION MUSIQUE .*************** 
********** 

128 DM gamme'/. (12): FOR xï=l TO 12: R >ïA 
EAD ganmeSMIiNEXT 

138 gamme»»" a-b b c+c d-e e t+f 9+ >QF 
g":DËF FNm*(5t,3)=HID*(s*,5,l> 
148 DATA U77,îi7ec,4647,W>47,!t5ed,i >DL 
598 

158 DATA Si547,8i«c,8i4b+,St47«,M3i,& >DH 
M 

168 ENV 1,15,1,1 >«K 

178 ENT -1,6,-1,1,12,.!, 1,6, -1,1 >«C 
188 ENV 3,2,5,2, 15,-1,9 >PC 
198 ENV 4.2,4,2,12,-1,18,18,8,15 >XN 
288 'tu************** 6RAPHISME : >RC 
LOCO ïi WAGONS ********************* 
********** 

216 CALL 8M4E >NE 

228 SYMBOL AFTER 228 >PQ 

238 SYMBOL 221,192,128,128,192,224, >LB 
224,48,248 

248 SYMBOL 222.3,49,49,255,255,255, >FZ 
8,255 

256 SYMBOL 223,248,248,252,61,255,1 >KX 
89,152,24 

268 SYMBOL 224,255,255,255,8,255,11 >JL 
5,115,33 

278 SYMBOL 225,127,127,127,64,255,1 >6B 
4,i4,4 
286 SYMBOL 226,255,4,4,7, 7,71, 78,71 >BB 

298 SYMBOL 231,3,1,1,3,7,7,12,15 >YF 

386 SYMBOL 232,192,148,148,255,255, >KY 

255,6,255 

318 SYMBOL 233,31.31,63,188,255,189 >GM 

.25,24 

328 SYMBOL 244,255,255,255,6,255,26 >KD 

6.286,132 

336 SYMBOL 245,254,254,254,2,255,11 >JD 

2,112,32 



346 SYMBOL 246,255,32,32,224,224,22 >JX I 

6,98,226 

356 w*(l)=CHRt(233)+CHR*(244)+CHR*( >BH 

245) +CHR» (11) +CHR* (BI+CHR» (8) +CHR» ( 

8)+CHR$(231!+CHR*(232)+CKR*(246)+CH 

R*(18) 

368 «1»(1)=CHR$(233)+CHR*(244)+CHR* >FB 

(245) 

378 u2*(l)=CHR*i231i+CHRti232)+CHR* >FZ 

(246) 

386 1(11=3 >6E 

396 w»(6)=CHR*(225!+CHR*(224i+CHR*( >SB 

223) +CHR* (11) +CHR* (8) +CHR» (8) +CHR» ( 

8) +CHR» (226) +CHR* (222) +CHR* (221 i +CH 

R*(18) 

486 wl»(6!=CHR*(225)+CHR»(224)+CHR» >FP 

(223) 

416 w2»(8i=CHR*(226ï+CHR*(222)+CHR» >FN 

(221) 

428 1(8) =3 >FJ 

436 SYMBOL 247,8,8,8,8,6,6,64,94 >YA 

448 SYMBOL 248,6,8,8,8,6,8,2.122 >YK 
458 SYMBOL 249,94,94,127,255,127,56 >GL 
,56,16 

468 SYMBOL 256,122,122,254,255,254, >HB 
28,28,8 
■ 476 M*(2i= CHR»(249)+CHR»(256i+CHR* >LT 
(lt)+CHR»(B)+CHR*(8)+CHR*(247i+CHR* 
(248)+CHR$(18) 

486 «1»(2>= CHR«(249)+CHR*(256) >XG 
496 »2»(2)=CHR*(247)+CHR»(24B! >XU 
588 1(21=2 >FJ 

516 SYMBOL 252,6,8,127,127.66.68,68 >DD 
.68 

528 SYMBOL 253,8,6,254,254,34,34,34 >DC 
,34 

538 SYMBOL 254,127,127,127,255,127, >JD 
56,56,16 

546 SYMBOL 255,254,254,254,255,254, >HU 
28,28,8 

556 w»(3)=CHR»(254)+CHR»(255)+CHR»( >KP 
1 1 ) +CMR* (Bl+CHR* (8) +CHR* (252) +CHR» ( 
253)+CHRt(16) 

566 wl»(3)=CHR*l254)+CHR*(255i >XK 
576 «2»(3)=CHR$(252!+CHR*(253> >XK 
588 1(3)=2 >GH 

598 '***************** AFFICHAGE PE >TE 
RMANENT *************************** 
********** 

686 KEY DEF B,6:KEY DEF !,8:KEY DEF >EN 
47,8 

618 SPEED INK 25,25 >MN 

626 INK 6,1: INK 1,1: INK 2,1: INK 3,1 >UV 
ilNK 4,1:INK5,1:INK 6,1:1* 7,1:IN 
K 8,1:INK 9.UINK 18,1:INK 11,4,1:1 
NK 12,1:PAPER 6:BORDER l:MODE 6 
636 LOCATE 3,1:PEN 4:PRINT STRINBtî >EX 



16,146):L0CATE 3,2:PRINT STRIN6*U6 

,143):L0CATE 3,3:PRINT STR1NG»(16,I 

31) 

648 LOCATE 4,2:PEN 6:PAPER 4:PRINT" >WO 

LE PETIT TRAIN" 

656 PAPER 16:F0R i=16 TO 19:L0CATE >QQ 

3,i:PRINT STRING»(6,32):L0CATE 18,i 

:PRINT STRINB$(4,32):L0CATE 15,i:PR 

INT STRINB$(4,32):NEXT 

668 PEN 8:LOCATE 5,18:PRINT w*(l):L >LS 

OCATE 11,18:PRINT H»(2):L0CATE 16,1 

8:PRINT w»(3) 

678 PAPER 8: FOR i=21 TO 24: LOCATE 1 >RD 

,i:FOR j=i TO 7:PEN j:PRINT CHR*Î14 

3)+CHR*(143)i:IF ,i<7 THEN PRINT" "; 

688 NEXT j,i >ED 

696 LOCATE 1,7:PEN 8:PRINT STRINB»! >MA 

26,288) iPEN INT(RND*7)+1:L0CATE 2.6 

:PRINT x»(l); 

766 FOR i=5 TO 19 STEP 2:PEN INT(RN >HL 

D*7)+l:LOCATE i,6:PRINT wtUNTtRND* 

2i+2):NEXT 

716 LOCATE 1,12:PEN 8:PRINT STRIN6» >JB 

(28,268!:PEN 6:L0CATE 4,11:PRINT «* 

(ii;L0CATE 15.11:PRINT w$(6) 

728 PEN 1 1 : LOCATE 8,11:PRINT CHR»(2 >YY 

42):PEN 12:L0CATE 13,11:PRINT CHR»! 

243) 

738 INK 6,1:INK 1,B:INK 2,11:INK 3, >TB 

9: INK 4,24:INK 5, 15: INK? 6, 6: INK 7,2 

6: INK 8,8:1»: 9,13: INK 16,14: INK 11 

,24,1: INK 12,1,24 

748 r*=INKEY*:IF r*="" THEN RANDOMI >NP 

ZE TIHE:S0TO 748 ELSE r=ASC(r») 

756 IF r=242 THEN force=l:SOTO 796 

766 IF r=243 THEN *orce=2:60TD 796 

776 GOTO 748 

788 f=6:l=8:nw=9 

798 UINDOW #1,1,26,5.12:PAPER *1,8: 

CLS tl 

866 '************* TIRAGE AU SORT D 

ES FORMES !,. COULEURS ************** 

********** 

818 RANDOMIZE TIME 

828 FOR 1=2 TO 9:f (i)=INT(RND*2)+2: 

NEXT: f( 11=1 

838 RANDOMIZE TIME 

848 FOR .i=l TO 9:c(i!=INT(RND*7)+l: 

NEXT 

856 '************************* ARRI 

VEE DU TRAIN ********************** 

********** 

866 LOCATE 1,7;PEN 8:PRINT STRINB»! 

28,268) 

878 j=«:TA6 

886 car/.=l:ca2:<:=l;viK=16:hh=8:hb=2 

898 cal»="r4G4E4D4C5BÎS8F4B4F4E4D5C 



>BE 
>BH 



>LJ 
>GA 



>NY 
>PC 



>NA 
>GN 



)TD 



>ZC 
>DB 
>BN 



f24l 



3S8E5E3F4E4D4C4B4C4D4E4CiA2B2FlE2B5 
C3A4C. " 

980 ca2$= il r2C2E2q2E2C2E2q2E2q2S2q2B >WB 
2q262g2S2e2E2e2£2q2fi2q2B2C2E2g2E2C2 
C2D2+D2e2E2e2E2e2D2e2D2t2F2«F2<2F2 
f 2F2C2E2g2E2g2D2g2D2C2E2C2F4C, " 
910 SOSUB 1638 >OB 

92» FOR 1=19 TO 1 BTEP -0.4:j=j+0.3 >XU 
45:BRAPHICS PEN cil) 
93» HÛVE l*32,319:PRINT wi$!l)::NOV >BZ 
E i*32,335:PRINT b2$(1); 
948 FOR s=3 TO.J STEP 2:6RAPHICS PE >NK 
N ciix+11/2) 

95» HOVE i*32+x*32,319:PRINT »l*if( >RN 
(K+i)/2) ): :MOVE i*32+;<*32, 335: PRINT 
w2*(f ; tx+l>/2) ) ; 

968 NEXT x,i;TABQFF >PH 

97» LOCATE 1,12:FEN 8:PRINT STRINGt >LK 
(28,208! 

938 ************************* CLAV >TH 
1ER ******************************* 
********** 

99* PEN 18 >SK 

1888 FOR i=l TO 9 >BH 

1018 x=6:LOCATE 6,15:PRINT CHR*(24i >B« 
) 

1020 IF INKEYtO" THEN 1020 >UE 
1838 r$=INKEY*;IF r*=" THEN 1030 E >PA 
LSE r=ASCir$S 

1048 IF l-=241 OR r=240 OR r=ll OR r >LC 
=18 THEN 1030 

1050 IF r=242 OR r=8 THEN dx=5*ix>6 >BC 
] 

1868 IF r=243 OR r=9 THEN dx=-5*(x< >DV 

16) 

1878 IF r=32 OR r=B8 THEN rt(i)=x\5 >HH 

:LOCATE x,15:PRINT" ":BOTO 1118 

1080 IF r=224 ANC" i>l THEN LOCATE x >AK 

,15:FRINT" ":60T0 2240 

1090 LOCATE x,15:PRINT" ":x=x+dx:L0 >PR 

CATE x,i5:PRINT CHR»!241)idx=0 

1100 BOTO 1030 >LB 

1110 FOR k=l TO 500: NEXT >RH 

1120 x=l:LOCATE x,25:PRINT CHR»(248 >DW 

) 

1138 IF INKEY10"" THEN 1130 >VA 

1140 r$=INKEY*:IF r*="" THEN 1140 E >PE 

LSE r=ASCir$) 

1150 IF r=240 OR r=241 OR r=U OR r >LB 

=10 THEN 1148 

1160 IF r=242 OR r=8 THEN dx=3*ix>l >BX 

) 

1170 IF r=243 OR r=9 THEN dx=-3*(x< >DY 

19) 

11B0 IF r=32 OR r=88 THEN rc(ii=x\3 >PH 

+1:LÛCATE x,25:PRINT" N :60T0 1228 

1190 IF r=224 ANB i>l THEN LOCATE x >AN 

,25:PRINT" ":BOTO 2240 



1280 LOCATE x,25:PRINT" ":x=:<+dx:LO 

CATE x,25:PRINT CHR$(240i:dx=8 

1218 BOTO 1140 

1228 '********************** ARRIVE 

E DES WAGONS ********************** 

********** 

1230 BRAPHICS PEN rc(li:TA6 

1248 IF force=2 THEN 2030 

1250 FOR i-20 TO 1+1 BTEP -8.4 

1260 IF rf(i)=l THEN SOUND 1,0,13,0 

,1,0,1 ELBE SOUND 5,1978,4,9,0.1,0 

1270 NOVE 32*j,239:PRINT xltirtiiii 

+" " ; : MDVE 32*.j,255:PRINT »2*irf(ii 

1280 IF rtîl)=i THEN FOR k=l TO 58: 
NEXT ELSE FOR k=t TO 18:NEXT 
1298 NEXT j 
1388 TA60FF: 1=1+1 (rf(i)i:lt-!i)=l: IF 

1>17 THEN nw=i:i=9 
1318 NEXT 1 
1320 'm****************** ANALYSE 

DES REPONSES ********************* 
********** 

1330 IF tora=2 THEN 2190 
1340 FOR 1=1 TO m 
1350 IF rffi)Of(i) OR rcli)Oc(i) 
THEN MOVE il+lr ( i) )*32, 223:DRAWR -i 
(t-f(i))*32,32,6:N0VER 0,-32:DRAM 1 
irf (il 1*32,32, o:WVE il+lr (1)1*32-4 
, 223: BRAWR -1 M ( 1 ! ! *32, 32, 6: MOVER 
0,-32: DRAW 1 irfii! 1*32,32,6: t=f+l 
1360 NEXT 

1370 IF f>0 THEN 1518 
1388 ***************************** . 
* GAGNE *************************** 
********** 

1390 cal*="r9C6E9B6A6C9qr9C6D9E9B9B 
r9C6E9D6A6C9gr3A6C3A6B6A6g6B9Cr6C6C 
2b2+g2B6e6Ar6A9qr6C6C6D6E969Sr6C6C2 
b2+g2B6e6Ar6A9qr3A6C3A6B6A6g6B9Cr9C 
6E9D6A6C9gr9C6B9EVB9Gr9C6E9B6A6C9gr 
3A6C3A4B6A6g6B9C. " 

1480 ca2$="r6C6E6C6E6t6F6C6Er6C6E6C : 
6E6g6D6g6Dr6C4E6C6E6W6C6£r6F6F6f6 
F696D6C6Er6E4E6B6E6Ar6F6C6qr6E6C6B6 
D656D6g6Br6C6E6B6E6Ar6F6C6gr6fiF6f6 
F6q6D6C6Er6C6E4C6E4f4F6C6Er6C6E6C6E 
6g4D6g6Br6C6E6C6E6f6F6C6Er6f6F6'F6F6 
g6D6C. " 
1410 cari=l:ca27.=2:vit7.=4:60SUB 163 : 



1420 TAG: IF <orce=2 THEN 2100 ; 
1430 FOR 1=1 TO -19 STEP -0.4:BRAPH : 
ICS PEN cil) 

1440 MOVE i*32,399-16*10:PRINT wl*( ; 
l);:HOVE i*32,399-16*9:PRINT u2$!t) 

1450 FOR x=3 TO 17 STEP 2:BRAPHICS : 



PEN c(x\2+l) 

1460 HOVE i*32+x*32,239:PRINT wltif ,>NF 

(x\2+l ) ) ; :MOVE i*32+x*32,255: PRINT 

«2$(f(x\2+D): 

1478 NEXT x:M0VE 1*32+608, 239: PRINT >Oû 

" "::HOVE i*32+60B,255:PRINT" "; 

1488 IF cal7.=0 AND ca2X=0 THEN BOSU >FA 

B 1638 

1490 NEXT iiTABOFF >NF 

1500 BOTO 1580 >HH 

1510 '***#********************* FER >XK 

DU ******************************** 

********** 

1528 cal»="flelglel-el-gl-eldlfld6e >HB 



1538 ca2*="r3g3A3B6C." 

1548 vitï=20:hh=2:hb=l 

1550 calï=iica2X=l 

1568 80SUB 1638 

1578 '********************+***** FI 

N ********************************* 

********** 

1588 PEN 1 1 : LOCATE 9.8:PRINT"0 n ::PE 

N 4:PRINT"/";:PEN 12:PRINT"N" 

1590 i*=UPPER*(INKEY*):IF i$="0" TH 

EN 780 

1608 IF i*="N" THEN I»; 8.13:INk 1, 

8:PAPER 8:PEN l:BORDER 13:H0DE 2:EN 

D 





1618 BOTO 1590 


>NA 




1620 '#*#************************ M 


>YB 


LB 


USIQUE **************************** 




NU 


********** 




YE 


1630 calï=l: 60SUB 1660 


>8H 




1640 ca27.=l:GOSUB 1848 


>DK 




1650 RETURN 


:>ff 


RB 


1660 


.■ÏF 




1670 pl$=FIMlcal*,cal%) 


;>rc 




1688 IF pl*OV THEN rl7.=0:6OTO 17 


>cw 




08 






1690 rl%»14:calX«calï+l:pl*=FN»$(ca 


>KL 




l*,cal%) 




PQ 


1788 IF Pl*=\" THEN cal7.=0:RETURN 
ELSE llï.=VAL(Pl») 


>UF 




1718 calï=calX+l 


>AB 




1728 nl*=FN«i*(cal»,cal'/.J 


>RH 




1730 calï=calï+l 


>AB 




1748 IF nl*=' ; +"^OR nl$="-" THEN 181 

8 

1750 nl*=" "+nl* 


>Zï 


DR 


;>U6 




1760 ndr/.= (l+INSTR!gai«e*,LOHER*(nl 


>KV 


UA 


$i)i/2 




HZ 


1770 IF ASC(RI6HT$(nl«,lli>96 THEN 
olï=hh ELSE ol7.=hh*2 


>XL 


UA 


1788 SOUND l+ri?.,ga««>?.(ndl'/.)/ol7.,'v 
itï*llï,6,3 


>PN 




1790 ON SQil! 60SUB 1660 


>RC 


NP 


1888 RETURN 


>FC 



'* ..*'•■■*■'• 



1810 r, t$=nit+FNmtica!*,calï) 


>VJ 


1B28 cal7.=cal7,+l 


'AD 


1830 SOTO 1740 


>ND 


1848 ' 


>ïF 


185D p2*=FNm*(ca2$.ca27.) 


«F 


1868 IF p2*OV THEN r27.=0:6OTO 18 


•LH 


60 




1878 r27.=8: câ2'/.=ca27.+l: p2*=F Nu* ica2 


;JD 


*,ca2X) 




1880 IF p2$="." THEN ca27.=0:RETURN 


>VL 


ELSE 127.=VAL<p2»i 




1890 ca27,=ca2ï+l 


>BC 


1900 n2*=FNm*tca2*.ca27.J 


>RZ 


1919 caZi=ca2ï+l 


>AF 


1929 IF n2*="+" OR n2*="-" THEN 199 


)ZK 


8 

1930 n2*=" "+n2* 


>UJ 


1948 nd27.= (l+INSTR!qaiMieJ,L0tlER$ln2 


>KX 


*)))/2 




1956 IF ASC(RI6HT$(n2*,lii;>96 IHEN 


>XB 


o27.=hb ELSE o27.=hb*2 




i960 SOUND 2tr2ï,ga»«eï(raj27.!/o27.,ï 


>PN 


l«*12î,0.4 




1978 ON 50(2! SOSUB 1848 


..RD 


1988 RETURN 


>6B 


i998 n2$=n2t+FN(n* (cà2*. ca27J 


m 


2900 ca27.=ca27.+i 


,>ZB 


2010 GOTO 1940 


.»HE 



2020 '********#*'************ ARRIVE >XG 
E DES BASONS force 2 ************** 
********** 

2030 IF rf(i)*l THEN rf(ll=0:t il 1=0 >BV 
2040 FOR j=-l-l(rf!i)l TO 18-lir+u >NJ 
)i-l STEP 0,5 

2059 IF rtil}=0 THEN SOUND 1.8,13.0 >HP 
,1,8,1 ELSE SOUND 5,1978,4,9.0,1.0 
2868 HOVE 32*j,239:PRINT " "+wl*lrf >AF 
(i));:HOVE 32*i,255:PRINT " n +n2*tr 
liliSi 

2979 IF rt(l)=8 THEN FOR k=l !0 58: ;F6 
NEXT ELSE FOR k=l TO 10-.NEXT 
2888 NEXT j:60TO 1380 >PR 

2090 '*************************** D >YD 
EPAR7 FORCE 2 ********************* 
********** 

2100 FOR i=17 TO 37 STEP 0.4:BRAPHI >LN 
CS PEN ctl! 

2110 MOVE i*32,239;PRINT «l$(0i::KO >EU 
VE i*32, 255: PRINT »2*C0)i 
2120 FOR 2=2 TO 16 STEP 2;6RAPHICS >N6 
PEN c\;<\2+!> 

2130 HÛVE i*32-s*32,239:PRINT »!$« :>Nt 
i;<\2+li;;:H0VE i*32-;i*32,255:PRINT 
w2*«.fis\2*li)! 

2148 NEXT k;IWE i*32-544,239:PRINT >QM 
I" ";:I«E 1*32-544. 255: PRINT" "i 



2159 IF cai7.=0 AND ca27.=0 THEN SOSU >FV 
B 1630 

2160 NEXT i:TA60FF >NA 
2170 BOTQ 1580 >NB 
2180 ********************** ANALVS >VD 
E REPONSE FORCE 2 ***************** 
********** 

2190 FOR 1=1 TO nti >LR 

2280 IF rf(iKHu) OR rcUiOcii) >HB 
THEN HOVE (19-lr(i)i*32,223:DRANR 1 
(rfu)i*32,32,6:l10VER 0.-32: DRAW - 
l(rf(i))*32,32,6:IWE il9-lr(ii>*32 
-4,223:BRAHR llHfii 1*32,32, o:MER 
0,-32:DRAHR -l(H(i))*32,32,6:f=f+ 
1 

2210 NEXT -*G 

2220 60T0 1370 .'HE 

2238 ************************ CORR >XK 
ECTIQN **************************** 
********** 

2240 IF *orce=l THEN LOCATE 2+1-1 (r >JU 
+11-1)1,11 ELSE LOCATE 20-1,11 

2259 PRINT STRING*illr»<i~l!>.32( >BL 

2260 IF torce=l THEN LOCATE 2+1-1 !r >JU 
Til-ll),10 ELSE LOCATE 29-1.18 

2276 PRINT STRING*ilii-t(i-ii!,32> .« 
2280 1=1-1 (rt li-1! ; : i=i~i >TG 
2298 GOTO 1810 .«• 



MAGNETIC 



• Pierre SCHAAF 



De evolutionus sphérum ou les 
aventures d'une bille aimantée se 
promenant sur un tableau quadriï 
Or, çà et là ont été disposés, par un 
ordinateur malicieux des aimants de 
même signe que ladite sphère. Les lois - 
de la physique étant ce quelles sont, la 
trajectoire de la boule métallique est 
déviée. A vous d'en déduire la position 
des aimants. Simple, non ? Le mode 
d'emploi est inclus dans le listing. 




r26l 



I 



19 REM **♦ MA6NETIC *** >PE 
15 REM *** SCHAAFF PIERRE •** >VG 

20 REM «*» présentation *** >VN 
3» MODE 8: BORDER 0:INK 8,8:11*: 1,16 >Z9 
:INK 2, 14: M 3,17:INK 4,9:1»: 5,24 
:INK 6,2:INK 7,21: INK 6, 15: INK 9,11 
:INK 18,22: INK 11,25 



48 DATA M,A,6,N,E,T,I,C 


>RT 


M FOR i=l TO 8 


>NK 


68 READ a*(i) 


>DB 


70 NEXT 


>ÏH 


B0 LOCATE 4,3 


>HK 


98 FOR i=l TO 8 


?PD 


188 PEN i:PRINT a$(i);" "; 


>TE 


118 NEXT 


>DH 


128 PEN 9:L0CATE 5.4:PRINT" 


>PZ 


138 PEN 18:L0CATE 8,5:PRINT" 


>GB 


140 PEN lkLOCATE il,6;PRINT"_" 


>Z6 


158 INK 12,8; INK 13,8: INK 14,8:PRIN >VP 


T CHR*(22)+CHR*(i) 




160 FOR i=3 TO 12 


>CD 


178 a=INTU.6'-i) 


>LW 


188 PLOT l,206-a:DRAW 63B,208-a,12 


>AZ 


198 NEXT 


>EF 


288 FOR i=30 TO 278 STEP 68 


>TP 


210 PLOT 319+1,195: DRAW 319+2*1, 1 


>ZR 


228 PLOT 319-i,195:DRAW 319-2*1,1 


>ZX 


230 NEXT 


)EA 


248 QRIB1N 298,135 


>MO 


250 FOR i=PI/2 TO STEP -0.03 


>w 


260 a=70»COS(i):b=20»SIN(i) 


m 


270 PLOT a,b,13:DRAW -a,b:PLOT -a, 


- >NY 


b:DRAW a,-b 




288 NEXT 


>EF 


298 ORIGIN 358,180 


>MT 


300 60SUB 600 


>GJ 


318 FOR i=PI/2 TO STEP -8.83 


>WD 


328 a=78*COSii);b=70*SIN(i> 


>VD 


338 PLOT a,b,14:DRAW -a,b:PLOT -a. 


- >NW 


b:DRAW a,-b 




348 NEXT 


>EC 


350 FOR k»l TO 7 


>WD 


368 SOUND 1,430, 10, 15,,, 1 


,>RA 


378 INK 12,26: INK 13, 13: INK 14,6:PR >YD 


INT CHR*(22)+CHR»(8) 




388 FOR j=0 TO 50: NEXT 


>qB 


390 INK 12,0: INK 13,0: INK 14,8:PRIN >VW 


T.CHR$(22)+CHR»(1) 




408 NEXT 


>DK 


410 r=60:SOSUB 570:GOSUB 600:r=50:G >LA 


OSUB 578 




420 ORIGIN 0,0 


>QG 


430 PLOT 258,220, 14: DRAW 278,228 


>YH 


448 PLOT 235,228:PL0T 228,228 


>m 


458 PLOT 238, 180: DRAW 250,180 


>wd 


460 PLOT 210, 180: DRAW 220,180 


>HZ 



. ' h 


|i i i, i i i i l l) 

ïïffâm 














478 PLOT 288,188 


>CA 


480 PLOT 280, 150: DRAW 295,158 


>WQ 


498 PLOT 258, 150: DRAW 265,150 


>WK 


500 PLOT 235, 150 


>BK 


510 PLOT 250,130;DRAW 255,130 


>WX 


528 PLOT 265, 138: DRAW 278,130 


>WB 


538 PLOT 280, 130: DRAW 290,138 


JWB 


540 PLOT 188,178:DRAW 208,178 


>WA 


550 INK 12,26:INK 13,13: INK 14,6:PR >YD 


INT CHR$(22)+CHR$'(8) 




568 CALL MB66:6QT0 700 


>QH 


570 FOR i=PI/4 TO STEP -0.83 


>WP 


58» PLOT r*COS(i),r*SINU!,12 


)YE 


590 N£XT:RETURN 


>MJ 


608 FOR i=l TO 15 


>CD 


610 SOUND 2,440,25, i,,l 


>OH 


620 SOUND 2, 415, 28, i 


;>nc 


638 NEXT:R£TURN 


>m 


708 REM m* initialisations *»* 


>ZR 


710 MODE 1: BORDER 9: INK '8, 9: INK 1,0 


>UH 


:INK 2,26: INK 3,6 




728 SYMBOL AFTER 232 


:>pz 


738 SYMBOL 232,102,102,195,195,195, 


>LZ 


231,126,32 




808 REM **» règles ♦** 


>NA 


818 PEN 1: LOCATE 4,12:PRINT"voulez- 


>NH 


yous les régies (O/N)?" 




828 a*=lPPER*UNKEY*):IF a$=" THEN 


>FY 


828 




838 IF at="0" THEN 80SUB 3500: GOTO 


>DP 


858 




840 IF a»<>"M" THEN 828 


>PK 


858 CLEAR:x=5:y=18:xa=x:ya=y 


>ZF 


868 DIM ai»ant'(33,22), essai (33,22) 


>BD 


878 ORISIN 1,1: GRAPHICS PEN 1 


>XS 


888 RESTORE 1610 


>LF 


900 REM **♦ jeu avec ou sans trace 


>CM 


*** 




918 SYMBOL AFTER 147 


>PF 


928 FOR i=147 TO 156 


>MT 


930 SYMBOL i,8 


>WB 


948 NEXT i 




>PB 



958 CLS:PEN l:LOCATE 4,10:PRINT"Vou >YU 
lez-vous le trace du deplace«ent";L 
OCATE ll,14:PRINT"de la bille (O/N) 
?" 

968 a*=UPPER$(INKEY*):IF a*="" THEN >FJ 
960 

978 IF a*="0" THEN 990 >NU 

980 IF at<;>"N" THEN 960 ELSE 1058 >XA 
998 SYMBOL 147,24,24,24,31,15 >WP 
1800 SYMBOL 149,24,24,24,24,24.24,2 >EB 
4,24 

1018 SYMBOL. 150,8,8,8,15,31,24,24,2 >BY 
4 

1820 SYMBOL 153,24,24,24,248,248 >YU 
1030 SYMBOL 154,0,0,0,255,255 >WQ 
1848 SYMBOL 156,8,0,0,248,248,24,24 >DM 



,24 

1050 SYMBOL 232, 102, 102, 195, 195, 195 >ML 
,231,126,32 

,1060 CLS:LOCATE 12,12:PEN 2:PRINT"V >BA 
EUILLEZ PATIENTEZ":FOR i=0 TO 500:N 
EXT 

1100 REM *** calcul position des ai >LB 
mants *** 

1110 RANDOMIZE TIME >PD 

1120 nbrai»ant=INT(RND(l)*10+l):IF >BZ 
nbraimant<5 THEN 1120 

1130 FOR i=l TO nbraifliant >UB 

1148 posk=INT(RNDU!*29+1):IF posx< >RH 
6 OR po5s/2=INT(posx/2) THEN 1148 

1158 posy=lNT(RND(l)*18+l):IF POsy< >TP 
3 OR posy/2<>INT(posy/2) THEN 1150 

1168 IF ai«iantfpo5ï,posyi=t THEN 11 >LR 
40 ELSE aimant(posx,posy)=l 

1178 NEXT i >VE 

1288 REM ♦*♦ dessin écran *** >V6 

1218 CLS:INK 1,9; INK 2,9: INK 3,9:PR >Y0 
INT CHR$(22)+CHfit(l) 

1228 FOR i=390 TO 78 STEP -32 >UV 

1238 PLOT 54, i: DRAW 500, i >TK 

1248 NEXT i >VC 

1258 FOR i=54 TO 528 STEP 32 >UA 

1268 PLOT i,70:DRÂW i,390 >TU 

1278 NEXT i >MF 

1280 FOR 1=94 TO 446 STEP 32 >UG 

1298 PLOT i, 358,0: DRAW i+16,358 >YL 

1380 PLOT i,182:DRAW i+16,182 >WC 

1318 NEXT i >VA 

1320 FOR i=334 TO 110 STEP -32 )VM 

1338 PLOT 86, i: DRAW 86,1+16 >VY 

1348 PLOT 470, ilDRAki 478, i+16 >WZ 

1358 NEXT i >vE 

1360 FOR i=2 TO 16 STEP 2 >QW 

1370 LOCATE 2,i+2:PRINT i/2 >VW 

1380 NEXT i >VH 

1390 FOR i=7 TO 29 STEP 2 >RA 

1488 LOCATE i,22:PRINT CHR»(61+i/2) >CH 

1410 NEXT i >VB 

1420 PLOT 22,38, i:DRAW 624,3B:DRAW >EF 
624,6:DRAW 22,6:DRAW 22,38 

1430 PLOT 21,40:DRAW 626,48:DRAW 62 >CB 
6, 5: DRAW 21, 5: DRAW 21,48 

1440 PEN 2:LOCATE 34,16:PRINTai«ian >EL 
t":LOCATE 35, 17: PRINT"»al": LOCATE 3 
4,18:PRINT"plact:" 

1450 PLOT 518, 166,1: DRAW 630, 166: DR >PL 
m 630, 70: DRAW 518, 78: DRAW 518,166 

1468 PLOT 516, 169: DRAW 632, 169: DRAW >MN 
632,69:DRAW 516,69:DRAW 516,169 

1478 ORIGIN 560,220 >MM 

1480 r=33:BOSUB 1520:r=27:6OSU8 157 >WC 
0:r=23:SOSUB 1578 

1498 ORISIN 600,350 >MN 







|TT i i i ! i ! H 










k'-'-'j-'-aS- 1 








>wt 








1500 r=33:G0SUB 1520:r=27:SOSUB 157 


1969 ya=y+2:60T0 1878 




>PB ' 


6:r=23:S0SUB 1579 




2968 REM ♦»* déplacement de la boul 


>FB 


1518 1NK i,0:itt. 2,26: II* 3.6:PRINT >FH 


e #** 




CHR*(22S+CHR»(6):60TD 1616 




2919 IF (K=5 AND y=2) OR (x=31 AND 


>DR 


1526 FOR i=9 TD PI/2 STEP 6.05 


M 


y=2) OR (x=5 AND y=28) OR (x=31 AND 




153» a=r*COS(i):b=r*SIN(ii 


)VJ 


y=26) THEN 1699 




1540 PLOT a,b,3:PLQT -a,-b:PLOT -a, 


)NS 


2029 IF x=5 THEN sens=l 


>RB 


bîPLOT a,-b 




2839 IF x=31 THEN sens=2 


>Ri 


1559 NEXT i 


>V6 


2946 IF y=2 THEN sens=3 


>RD 


1560 RETURN 


>FF 


2959 IF y=20 THEN sens=4 


>R6 


1578 FOR i=0 TO PI/4 STEP 6.95 


M 


2868 LOCATE ;<,y:PRINT" " 


>TH 


1589 PLOT r*CQS(i),r*SIN(i),2 


>YC 


2876 ON sens 60T0 2116.2149,2176,22 >CZ 


1598 NEXT i 


M 


99 




1699 RETURN 


>FA 


2989 IF essai(x,y)=l THEN essaHx.y 


>NY 


1619 DATA G,N,E,T 


)LJ 


)=0:coup=coup-l 




1629 LOCATE 34,4:PRINT"M":60SUB 486 


>RA 


'2999 LOCATE x,y:PEN 2;PRINT CHRt(23 


>EM 


8:L0CATE 34,6:PRINT"A":G0SUB 4999 




1) 




1639 FOR j=34 TO 49 STEP 2 


>RR 


2199 xa=x:ya=y:G0T0 1699 


>UP 


1649 READ a*:LOCATE j,8:PRINT a*:GO 


>KE 


2119 GOSUB 2300:x=x+2 


>PM 


SUB 4989 




2128 IF INKEY(69)=0 THEN x=5:y=2 


>ZN 


1659 NEXT j 


>VJ 


2138 IF x=31 OR x=5 OR y=2 OR y=20 


>RH 


1669 LOCATE 46,10:PR1NT'T I :SOSUB 49 


>VP 


THEN 2889 ELSE 2978 




89:L0CATE 46,12:PRINT"C":S0SUB 4969 




2149 BOSUB 2300iX=x-2 


>PT 






2156 IF INKEY(69)=0 THEN x=5:y=2 


>ZR 


1679 PEN 2:L0CATE x,y:PRINT CHR*(23 


>E« 


2169 IF x=5 OR x=31 OR y=2 OR y=20 


>TE 


1) 




THEN 2886 ELSE 2876 




1689 REM *** entrée clavier *** 


>XJ 


2176 BOSUB 2366:y=y+2 


>PW 


1699 àt=UPPER*(INKEY*);IF a*="" THE M 


2188 IF INKEY(69)=8 THEN x=5:y=2 


>zv 


N 1699 




2199 IF x=5 OR x=31 OR y=29 OR y=2 


>TF 


1788 IF a*=CHR*<242) OR a$=CHR*(243 


>KN 


THEN 2889 ELSE 2676 




) THEN 1899 




2289 60SUB 2380:y=y-2 


>PR 


1718 IF a$=CHR*(240) OR a*=CHR*!241 


>KK 


2218 IF INKEY (691=0 THEN x=5;y=2 


>ZN 


1 THEN 1999 




2226 IF x=5 OR x=31 OR y=2 OR y=28 


>TB 


1729 If a*=CHR«<224) THEN 2999 


>VH 


THEN 2886 ELSE 2678 




1739 IF a*="P" THEN 2898 


>qp 


2366 REM ♦** test de position des a 


>LC 


1748 IF a*="S" THEN 3699 


>QL 


imants *** 




1758 IF a$="A" THEN 3199 


>PC 


2319 aimant=l 


>8B 


1769 GOTO 1699 


>NH 


2326' IF aimant (x+2,y)=l THEN aimant 


>NH 


1888 REM «m déplacement droite-oau 


>KB 


=aimant+l 




che »** 




2330 IF aimant lx-2, y) =1 THEN aimant 


>NM 


1819 IF y=2 OR y=26 THEN 1829 ELSE 


>CD 


=aimant+2 




1699 




2349 IF aimant(x,y+2)=l THEN aimant 


>NN 


1828 IF a»=CHR*(243) THEN 1856 


>hp 


=aimant+4 




1838 IF x=5 THEN 1698 


>N0 


2359 IF aimant (x,y-2)=l THEN aimant >N« 


1849 xa=x-2:6QT0 1876 


>PV 


=aimant+8 




1858 IF x=31 THEN 1698 


>PV 


2366 ON aimant BOSUB 2389,2418,2476 


>BB 


1868 xa=x+2 


>XD 


, 2386, 2530,2596, 2660, 2538, 2610, 2678 




1879 LOCATE x,y:PRINT" ":LOCATE sa. 


>FK 


,2689,2616,2386,2416,2478 




ya:PEN 2:PRINTCHR*(231) 




2378 RETURN 


>FF 


1889 x=xa:y=ya;GOTO 1698 


>UE 


2386 IF sens=l OR sens=2 THEN trace 


>QV 


1989 REM *»* déplacèrent haut-bas < 


>DX 


»=CHR*(154) ELSE trace*=CHR*(149i 





1919 IF x=5 OR x=31 THEN 1926 ELSE 
1690 

1920 IF a»=CHR*(241) THEN 1950 
1930 IF y=2 THEN 1698 

1940 ya=y-2:60TO 1878 
1958 ÎF v=26 THEN 1698 



2398 IF x=5 OR x=31 OR y=2 OR y=29 >DT 

THEN RETURN ELSE BOSUB 2698 

2400 RETURN >EK 

2410 ON sens GOTO 2429,1699,2459,24 >CW 

69 

2429 IF x=5 THEN x=3:y=2:RETURN >ZG 

2430 IF (aimant=14 AND sens=l) THEN >BR 



sens=2:x=x-4i RETURN 

2440 BOTO 2530 >MH 

2459 sens=2:trace*=CHR»(153):60SUB >BP 
2699:y=y-2;x=x-2:RETURN 
2466 sens=2:trace*=CHR*(156):60SUB >GR 
2696: y=y+2: x=:<-2: RETURN 
2476 ON sens GOTO 1698,2480,2516,25 >CC 
26 

2486 IF x=31 THEN x=33:y=28: RETURN >CB 
2496 IF (ai»ant=15 AND sens=2> THEN >BX 

sens=l:x=x+4:RETURN 
2588 GOTO 2618 >MD 

2516 sens=l:trace*=CHR*il47):6QSUB >6L 
2690: y=y-2:x=x+2: RETURN 
2520 sens=l:trace»=CHR*( 156): GOSUB >SD 
2696: y=y+2:x=x+2: RETURN 
2538 ON sens BOTO 2540,2556,2566 >YA 
2548 sens=4:trace$=CHR*( 153): GOSUB >SR 
2698: x=x-2: y=y-2: RETURN 
2550 sens=4:trace»=CHR*fl47):B0SUB >GU 
2690:x=x+2:y=y-2:RETURN 
2566 IF y=2THEN x=31:y=6;RETURN >AM 
2570 IF (aimant=8 AND sens=3) THEN >AH 
sens=4;v=y-4:RETURN 

2580 GOTO 2470 >NF 

2590 IF sens=l THEN 2530 ELSE 2410 >ZY 
2600 IF sens=2 THEN 2530 ELSE 2470 >ZX 
2618 ON sens BOTO 2626,2630,1690,26 >CA 
49 

2620 sens=3:trace*=CHR$U56):S0SUB >SQ X 
2690: x=x-2:y=y+2: RETURN 

2639 sens=3:tracet=CHR»( 150): GOSUB >6H 
2699: x-x+2:y=y+2: RETURN 

2640 IF y=28 THEN x=5:y=22:RETURN >BU 
2650 IF (aimant=12 AND sens=4i THEN >BY .' 

sens=3:y=y+4:RETURN 

2660 BOTO 2410 >MJ 

2679 IF sens=l THEN 2616 ELSE 2419 >Z« 

2689 IF sens=2 THEN 2610 ELSE 2470 >ZE 

2690 IF essai(x,y)=l THEN essai(x,y >«F 
)=9:coup !: coup-l 

2700 PEN 3:L0CATE x,y:PRINT trace* >CZ 

2710 RETURN >FD 

2888 REM.»»* placer un aimant *** >YV 

2816 IF coupOnbraimant THEN 2848 >BF 

2828 PEN 2:LOCATE 5,24:PRINT , Suppri >F'F 

mer d'abord un aimant" 

2830 BOSUB 4660:FOR i=l TO 2066:NEX >CU 

T i: GOSUB 3356: GOTO 1696 

2840 GOSUB 2896 >YF 

2858 LOCATE joux, jouy:PEN 2:PRINT C >MA 

HR*(232) 

2866 IF aimant (. joux, jouy)=l THEN se >TE 

ore=5core+l 

2870 essai (joux, jouy)=l:coup=couptl >GF 

2880' IF coup=nbraimant THEN 3206 EL >JX 
,SE 1690 



,28 . 



|'d±y±!ii:i 
■MM*»' ■ SÇj.g-fj^Ç] 



2890 PEN 2:L0CATE 5,24:PRlNT"Coordo >FX 
nnees (lettre,chiMre)"|:SOSUB 4060 

2900 INPUT joux*,jouy >RF 

291® joux=ASCijoux*):IF joux>90 THE >WK 

N joux=joux-32 

2920 IF (jouy<l OR jouy>8 OR joux<6 >XU 

5 OR joux>76) THEN GOSUB 3350: BOTO 

2890 

2930 joux=(joux-59)+ljoux-64):jouy= >RB 

(jouy+l)*2 

2946 8D5UB 3350 >XJ 

2950 RETURN >FK 

3000 REM *** suppression d'un aiman >U2 

t *+* 

3010 GOSUB 2890 >XF 

382* IF essai (joux, jouylOl THEN 30 >E¥ 

10 

3030 LOCATE joux,jouy:PRINT" " >AR 

3040 IF aimant!joux,jouy)=l THEN se >RF 

ore=score-i 

3050 essai (joux, jouy)=0:coup=coup-l >6X 

3060 BOTO 1690 >NC 

3100 REM *** abandon *** >QE 

3110 PEN 2;L0CATE 5,24:PRINT"Positi >VW 

on des";nbraimant; "aimants" 

3120 BOSUB 4060:FOR i=l TO 2000;NEX 

T i 

3130 FOR i=7 TO 29 STEP 2 

3140 FOR j=4 TO 18 STEP 2 

3150 IF aimant(i,ji=l THEN LQCATE i >DT 

,j:PEN 1:PRINT CHR$!232) 

3160 NEXT j,i >KJ 

3170 LOCATE 5,24:PEN 2:PRINT score; >PA 

"aimantlsi bien place(s)" 

3180 BOSUB 4060: FOR i=l TO 4000: NEX >DH 

T i 

3190 6QT0 3300 >M6 

3200 REM *** tous les aimants sont >LU 

places *** 

3210 PEN 2:LQCATE 5,24:PRINT nbraim >AT 

ant;"ai«ants a placer au total" 

3220 LOCATE 35,20:PRINT" " >VL 

3230 GOSUB 4060:FOR i=l TO 2000:NEX >DP 

T i 

3240 IF coup=score THEN 3280 >NJ 

3250 PEN 3:L0CATE 35,2«:PRINT coup- >JE 

score 

3260 BOSUB 4060: FOR i=l TO 2000: NEX >BT 

T i 

3270 BOSUB 3350: BOTO 1690 >TN 

3280 SOSUB 3350: LOCATE 5,24:PRINT"T >FJ 

ous les aimants sont bien places" 

3299 SOSUB 4060:FOR i=l TO 2000:NEX >DW 
T i 

3300 BOSUB 3350:BOSUB 4060:LOCATE 5 >BF 
,24:PRINT"Voulez-vous rejouer (O/'N) 



>DM 



>QC 

>qz 



3310 a$=UPPER*lINKEY»:IF a*="" THE >BW 

N 3310 

3320 IF a*="0« THEN 850 >PU 

3330 IF a*<>"N" THEN 3310 >QY 

3340 CLS:BORDER lilNK 0,1:1*: 1,24: >LB 

PEN 1:END 

3350 LOCATE 5,24:PRINT SPACE*(34! >BC 

3360 RETURN >FF 

3500 REM »** règles »** >PP 

3510 CLS:LOCATE 14,2:PEN 2:PRINT"R >NJ 

E B L E S" 

3520 LOCATE 13,3:PbN 3:PRINT" >RT 

>F6 



3530 PEN 1:L0CATE 2,6:PRINT" Vous d 

ispasez d'une bille aimantée pourvo 

us déplacer sur une grille de jeu." 

3540 PRÎNT"Vous ne pouvez déplacer 

la bille que surle pourtour de cett 

e grille." 

3550 PRINT:PRINT" Par contre, la bi 

lie peut être lanceesur la grille 

, elle se déplace en lignedroite p 

aur atteindre le cote oppose." 

3560 PRINT:PRINT" Bien entendu, l'or 

dinateur a dispose, auhasard, des a 

imants de même nature surla grill 

e, " 

3570 PRINT:PRINT" Si un aimant se t 

rouve sur le chemin devotre bille, 

celle-ci est repoussee etvoit sa 

direction modifiée. " 

3580 SOSUB 3910 

3590 PRINT:PRINT"Exemnle :" 

3600 LOCATE 23, 2: PEN 3:PRINT CHRtfl 

96)+" "+CHR$(149) 

3610 LOCATE 23,4:PRINT CHR$(149)+" 

"+CHR*(147)+" "+CHR*(154)+" "+CHR$t 

197) 

3620 LOCATE 21,6:PRINT CHR*(154)+" 

"+CHR*U53)+" "(SPEN 2:PRINT CHR$(2 

32);:PEN 3:PRINT" "+CHR»(150!t" "+C 

HR$(154) 

3630 LOCATE 21,S:PRINT CHR$(199)+" 

"+CHR«U54)+" "+CHR*(156)+" "+CHR*( 

149)+" " 

3640 LOCATE 25,10:PRINT CHR$(149)+" 

"+CHR*(198) 
3650 FOR i=262 TO 358 STEP 32 
3660 PLOT 343,i,l:DRAK 439, i 
3670 NEXT i 

3680 FOR i=343 TO 439 STEP 32 
3690 PLOT i,262;DRAH i,358 
3700 NEXT.i 

3710 LOCATE 2,5:PEN 2:PRINT CHRK23 
2)+" : aimant" 

3720 LOCATE 2,7:PEN 3:PRINT CHR*(15 
4)+" : trajet bille" 



>EU 



3730 LOCATE 1,13:PEN l:PRINT"Les ai >VA 
sants ne sont pas visibles, a vousd 
e déterminer leurs positions en dep 
lac-ant la bille sur toute la grill 
e. " 

3740 PRINT:PRINT"Le nombre d'aima >PF 
nts a trouver varieentre 5 et 10 

3750 PRINTTorsqu'ils sont tous pla >LY 

ces,l'ardinateura-ffiche le nombre d / 

'aimants mais places." 

3760 PRINT'A vous de les replacer a >KB 

u bon endroit..." 

3770 BOSUB 3910 >¥C 

3780 LOCATE l,7:PRINT"Le jeu possed >HZ 

e un mode normal (difficile)et un mo 

de trace(-facile)," 

3790 PRINTiPRINT'En mode trace, un >£D 

trait s'aHiche sur lepassage de la 

bille, alors qu'en modenormal, 
il ne s'affiche rien." 
3800 PRINT:PRINT"Si la bille dispar >BE 
ait après un lancementet ne reapara 
it plus, elle est entreedans une 

boucle et ne peut plus s'enech 
apper. " 

3810 PRINT:PRINT"Pour la libérer ap >NH 
puyez sur la touche Q. " ' 

3820 BOSUB 3910 >XJ 

3830 LOCATE 11, 2: PEN 2:PR1NT"R0LE D >RZ 
ES TOUCHES" 
3840 LOCATE 10,3:PEN 3:PRINT" >ZA 



>YB 


" 


,>AN 


3850 LOCATE 10,6:PEN l:PRINT"(P)lac >YX 


>W 


er un aimant" 




3860 LOCATE 10,8:PRINT"(S)uppriier >X8 


>HZ 


un aimant" 




3870 LOCATE 10,l«:PRINT"(A)bandonne >UK 




r le jeu" 


>J6 


3880 LOCATE 10,12:PRINT M»(240i;C >VN 




HR$(241) ;CHR$(242)iCHR$(243) ; " Depl 




acer la bille" 




3890 LOCATE 10,14:PRINT"(COPY) Lanc >X« 


>BA 


er la bille" 




3900 LOCATE 10,16:PRINT"(Q)uitter u >WU 




ne boucle" 


>PP 


,3910 LOCATE 10,25:PEN 2:PRINT"Appuy >HH 




ez sur une touche" 


>VE/ 


3920 CALL &BB06 >UH 


>VD 


3930 CLS:PEN 1:RETURN >RV 


>m 


4000 REM *** sonorités *♦* >TV 


>VH 


4810 FOR i=5 TO 15 >LJ 


>UB 


4020 SOUND 2,440,l,i )NV 


>VF 


4030 SOUNB 2,445,1,1 >NB 


>UE 


4040 NEXT i >VD 




4050 RETURN >FC 


)DU 


4060 SOUND 5,200,50,9 >NH 


i 


4070 RETURN >FE» 




u 



POUSSE-POUSSE 



I 



Le principe de 
POUSSE-POUSSE 
est simple : vous 
devez reconstituer 
une suite de mots 
ou une image qui 
sont contenues dans 
un tableau à 
l'écran. Le tableau 
étant constitué de 
caractères mis dans 
le désordre. 
Vous remarquerez 
que, quelque soit le 
tableau à 

reconstituer, le carré 
en bas à droite sera 



•David PAVEN 



■ ■ • s 



ht] Àtr d#UX r#pr " •»****«*»* 



':'■'': :, 



' t ■ . ■ : , . . , '■ 



I 



toujours vide : c'est 
cela qui permettra 



I 



le déplacement des 
parties du tableau. 



UN 

NUMERO 

HORS 

SERIE 

GRATUIT 

TOUS 

LES 

| DEUX 

MOIS 



4 REVUES POUR LES PASSIONNES 



CPC - REVUE DES UTILISATEURS D'AMSTRAD : en vous abonnant, vous rece- 
vrez chez vous votre revue. Vous bénéficierez de réductions sur certains produits et vous 
recevrez gratuitement 1 n° hors-série tous les deux mois. 

AMSTAR : en avant première, toutes les nouveautés sur AMSTRAD - des programmes, 
des articles I A la demande de nos lecteurs, nous prenons désormais les abonnements. 
PCompatlbles MAGAZINE : la référence en matière d'initiation et de perfectionne- 
ment sur les "compatibles PC. 

Attention, tous nos abonnés reçoivent avant parution des souscripthns sur les nouveaux 
livres I 

ATTENTION I II n'y a pas d'abonnement rétroactif. 

□ CPC AMSTRAD 1 1 numéros 220 F 
Q 6 numéros 120 F 

□ AMSTAR 11 numéros 140 F 

□ PCompatibles Magazine 1 1 numéros 200 F 

□ Arcades 1 1 numéros 200 F 



NOM 

Adresse - 



Prénom - 



Code postal . 



Date 

Je m'abonne à : 



Signature - 



CPCHS8 



A 
B 
O 
N 
N 
E 
Z 

V 
O 
U 

S 



r3CM 



-'......■■■■'"-.y...' 



POUSSE-POUSSE possède trois 
niveaux : dans le premier le tableau 
mesure 4*4 caractères, dans le 
deuxième 5*5 et dans le troisième 6*6. 
Chaque niveau comporte quatre 
tableaux dont 2 avec une suite de mots 
et 2 avec une image. Cela fait en tout 
six images : 

• niveau 1 : un homme à lunettes un 
peu chauve et un homme sans lu- 
nettes. 

• niveau 2 : un éléphant d'Asie et un 
avion au-dessus des montagnes. 

• niveau 3 : un hippocampe et un 
panda géant. 

Toutes les informations, sur le compte 
des points et sur les deux commandes 
possibles pendant le jeu (Loupe et 
Vérification), vous seront données 
dans les instructions du programme. 

DETAILS TECHNIQUES 

Ce programme comporte deux 
routines en langage machine : 

— La première sert à lire un caractère 
à la position actuelle du curseur texte, 
et peut être réutilisée dans un de vos 
programmes en changeant simplement 
(si besoin est) l'adresse dans : LD 
( # 8007),A (C'est l'adresse où va être 
sauvé le code ASCII du caractère lu). 
La routine se lance par un CALL 
&8000. 

Ex. : Pour lire le caractère en bas à 
droite, faire LOCALE 40,25:CALL 
&8000:PRINT PEEK(&8007) 

— La deuxième routine, quant à elle, 
est plus complexe, et fonctionne 
uniquement en MODE 1 : elle sert à 
agrandir les images et se lance par un 
CALL &8020. 

• Pour la reloger, il ne faudra pas 
oublier de changer les adresses 
définies, au début du listing 1 
assembleur, par l'instruction EQU. 

• Pour l'utiliser, il faudra poker les 
valeurs suivantes : 

En &8010 : le poids faible de la 

coordonnée X de Limage agrandie. 

En &8011 : son poids fort. 

En &8012 : la même valeur qu'en 

&8010. 

En &8013 

&8011. 

En &8014 : le poids faible de la 

coordonnée Y de l'image agrandie. 

En &8015 : son poids fort. 

En &8016 : la longueur en nombre de 

points (1 caractère = 8 points) 

En &80I7 : la largeur en nombre de 

points. 



En &802A : le poids faible de la 
coordonnée X de l'image à agrandir 
En &802B : son poids fort 
(initialement X = 0). 
En &802D : le poids faible de la 
coordonnée Y de l'image à agrandir 
En &802E : son poids fort 
(initialement Y = 399). 
En &8039 : l'INK du papier à 
l'endroit où est imprimée l'image 
agrandie : (mettre 4 ou plus si le 
papier n'est pas uni ou s'il est généré 
aléatoirement sinon il apparaîtra à la 
place d'une des couleurs de l'image 
agrandie). L'INK est initialement à 0.. 

En &8095 : la même valeur qu'en 

&802A 

En &8096 : la même valeur qu'en 

&802B 

EXEMPLE 

Imaginons que vous vouliez agrandir 
le mot POUSSE-POUSSE situé en 



haut à gauche de l'écran X = 0, 

Y = 399 ( = &18F) pour l'afficher aux 

coordonnées X = 96( = &60), Y = 367 

( = &16f). Le fond étant en INK 0. Il 

faudra faire : 

POKE &8010,&60:POKE &8011.0 

Pour la coordonnée X 

POKE &8012,&60:POKE &8013.0 

Pour la coordonnée X 

POKE &8014,&6F:POKE &8015.1 

Pour la coordonnée Y 

POKE &8016,120 

Longueur = 15 caractères * 8 

points/car. = 120 

POKE &8017,8 

Largeur = 1 caractère * 8 = 8 

CALL &8020 

Lance la routine 

Les autres valeurs (position du mot 
POUSSE-POUSSE, INK du fond) 
étant les mêmes que celles initialement 
prévues, il n'est pas nécessaire de les 
poker. 



la même valeur qu'en 




w i '♦*#*******■*****##*#**+*** 



2 


■"*** 


D.Paven 


*** 


3 


'*** 




*#* 


4 


■*** 


présente 


*## 


5 


'«*» 




*** 


6 


'*** 


POUSSE-POUSSE 


*** 



? '*********#*#*#***#**»*♦** 

8 ' 

50 SYMBOL AFTER 126 

m MEMORY i7FFF:G0SUB 980:GQSUB 157 

0:LOCATE 12,12:PRINT"INSTRUCTI0N (0 

/N)":CALL 4B803 

78 Rt=UPPER$(INKEY*>:IF R*="" OR R* 

©"0" AND R*0"N" THEN 70 ELSE IF R 

$="0" THEN G0SUB 182» 

BU MODE ltPRINT CHR*(10)+"-Veuillej 

entrer votre non»(î2 caracteresau ta 
Miail) : ":PRINT:CALL MB03:PRINT"~ 
— >";:NQM*="":N*="" 
90 N$=INKEY$:IF N*=" THEN 90 
100 IF ASC!NJ)=127 AND N0M*O"" THE 
N PRINT CHRM8I+" "+CHR*(B);:N0M*=L 
EFTtiN0M»,LEN(N0M$!-l):G0T0 90 
110 IF ASC(N*)=127 AND N0MJ="" THEN 

PRINT CHR*(7I;:60T0 90 
120 IF ASC(N$K>13 THEN N0M*4O1*+N 
«:GOT0 130:PRINT N*i ELSE 140 / 



>EF 



130 IF LEN(N0M*)>12 THEN PRINT CHR* 

(7) i :NQM«=LEFT*(N0M$,LEN(N0M»>-1) :G 

0T0 90 ELSE PRINT N*;:G0T0 90 

140 CLS:N0M*=UPPER*(NQM»):NûMl*= i, Bi 

erwenue "+NDM»:X*INT((40-LEN(NDM!*) 

i/2!:L0CATE X,12:PRINT N0M1*;F0R A= 

1 TO 3000: NEXT A 

145 IF 6RIUE>=3 THEN CHAINE*'" ":F0 

R A=l T0 FIN'"2-1:P£AD CH:CHAINE*=CH 

AINE*+CHR*(CHI:NEXT ArGOSUB 1190:60 

SUB 710:GOTO 160 

150 CHAINE$="":F0R A=l TO FIN:READ 

LI*(A):CHAINE*=CHAINE*+LI*(A):NEXT 

fl:60SUB 1190:GOSUB 710 

140 FOR A=l TO LEN(CHAINE$):Ct=MID$ 

(CHAINERA, 1) 

170 X=INT(RND*FIN)+1:Y=INT(RND»FIN) 

tliIF X=FIN AND Y=FIN THEN 170 ELSE 

L0CATE X, Y: CALL »00 
180 IF PEEK(&8907>»32 THEN PRINT C* 
;:NEXT A ELSE 170 

190 X=FIN:Y=FIN:INK 1,24:11* 2,26:1 
NK 3,0:CLS #1 
200 PRINT CHR*(7);:EVERY 50,3 BOSUB 

740 
210 R»=INKEY*:IF Rt="" THEN 210 



>RU 
>ZY 

>TM 
>QC 
>FN 

>xz 



// 



— 



22» IF R*=CHR*!241) THEN Y=Y-1:B0SU 

B 550 ELSE 258 

239 IF DEPLACE=1 THEN SOSUB 378 ELS 

E Y=Y+1 

248 GOTO 218 

258 IF R*=CHR*(248) THEN Y=Y+l:GOSU 

B 558 ELSE 288 

268 IF DEPLACEE THEN GOSUB 418 ELS 

E Y=Y-1 

278 SOTO 218 

288 IF R$=CHR»(242) THEN X=X+1:BÛSU 

B 558 ELSE 318 

298 IF DEPLACE»} THEN 60SUB 458 ELS 

E M-l 

388 80T0 218 

318 IF Rt=CHR$<243) THEN X=X-l:GOSU 

B 558 ELSE 348 

328 IF DEPLACEE THEN 60SLIB 498 ELS 

E X=X+1 



338 GOTO 218 


>YF 


348 IF UPPER*<R*)="V" THEN GOSUB 58 


)CH 


8 

358 IF UPPER*(R*!="L" THEN GOSUB 15 


:>DM 


80 

368 SOTO 218 


ïYJ 


378 '*** BAS *** 


>TA 


380 GOSUB 538 


ïHJ 


398 LOCATE X,Y:PRINT " "::LOCATE X, 


>CT 


Y+1:PRINT CHR$(CHARi| 




488 RETURN 


>YK 


410 '*** HAUT *»» 


>RF 


428 GOSUB 538 


>HD 


438 LOCATE X,Y:PRINT " ";:LOCATE X, 


>CP 


Y-liPRINT CHR*(CHAR>; 




448 RETURN 


>ZD 


450 '*** GAUCHE *** 


>RK 


460 GOSUB 530 


>HH 


478 LOCATE X,Y:PRINT " ";:L0CATE X- 


>CU 


l,Y;PfiINT CHR*(CHARl! 




488 RETURN 


>ZH 


498 '**« DROITE m 


>TD 


508 GOSUB 538 


>HC 


518 LOCATE X,Y:PRINT " "::LOCATE X+ 


>CL 


1,Y:PRINT CHRi(CHAR); 




520 RETURN 


>zc 


538 '*** PREND CARACTERE M* 


>RJ 


548 LOCATE X,Y:CALL 48000: CHAR=PEEK >VA 


<M887):RETURN 




550 'm DEPLACEMENT VALIDE 7 *** 


>TA 


560 BI: IF X<1 OR X)FIN OR Y<1 OR Y> 


>TW 


FIN THEN LOCATE t3,9,l:PRINT #3,CHR 




J(7!+CHR*(24>+" Déplacement INTERDI 




T "+CHR$(24) : : DEPLACEE: El : RETURN 




578 LOCATE #3,9,1:PRINT#3,M»(24! + 


>RS 


" DepUcenent correct. "+CHR*<24>;: 




DEPLACE» 1 : CÛMPTEUR=C0MPTEUR+ 1 : ROI NT 




=P0 1 NT- 1: LOCATE K,1,2:PRINT#2,C0MP 




TEUR:EI:RETURN 





580 '*** VERIFICATION *** 
590 LI6NE*="":LI*(FIN>=LI»(FIN>+" " 
:FOR B=l TO FIN:FOR A=l TO FINïPOKE 
48884, !<6+A:L0CATE A,B;PEN 3:CALL b 
8880:NEXT A 

600 FOR C=&8807 TO 1B087+(FIN-1):LI 
GNE$=LISNE*+CHR*(PEEK(C)):NEXT C 
610 IF LI$(B)=U6NE$ THEN LIGNE*="" 
:NEXT B;POKE lBl»4,t?:LIi(FINI=LEFT 
*(LI*(FIN),FIN-1! ELSE POKE 48004,1 
?:LIt(FINI=LEFTtiLI$(FIN),FIN-ll:SO 
TO 660 

620 LÛCATEtl ,8,1: PEN#1 , 0:PRINT« , RE 
«AlNI3!s:SCORE=SCORE+PDINT-(M*t0l:P 
EN #1,1:L0CATE#1,1,7:FRINT#1,CHR*<2 
4"!+" BRAVO "+CHR$(24)+", "+N0MS+" < 
!":PRINT#l,"Vous avez réussi a refo 
ruer le tableau. ":N1=3:N2=5:ATT=588 
8:60SUB 1650:6OSUB 680 
638 CHQIX*=INKEY*;IF CHOIX*="" THEN 

630 

640 IF CH0IX*="1" AND GRILLE=4 AND 
NIVEAU=3 THEN GOTO 1250 ELSE IF CHO 
IX$="1" AND GRILLE=4 THEN NIVEAU=NI 
VEAU+l:GRILLE=l:FIN=FINtl:GOSUB 157 
9:G0SUB 690:GOTO 145 ELSE IF CHOIX* 
="1" THEN GRILLE=BRILLE+1:80SUB 690 
iGOTO 145 

650 IF CHÔIX*="2" THEN GOSUB 980:80 
SUB 157ê:G0T0 80 ELSE IF CHQIX*="3' 

THEN GOTO 1758 ELSE 630 
660 PEN t 1,1: LOCATE tl,l,7:PRINT #1 
,"Vous n'avez pas de chance, ce n'es 
t pas cela.":60SUB 1700:SOSUB 680 
670 CHOIX*=INKEYÏ:IF CHOIX*=" THEN 

670 ELSE IF CH0IX*="1" THEN CLS tl 
:RETURN ELSE IF CHDIX*="2" THEN LOC 
ATE#1,B,1:PEN*1,0:PRINT#1,RE«AIN(3) 
;:80SUB 980:GOSUB 1570:6OTO 80 ELSE 

IF CH0IX»="3" THEN 60T0 1750 ELSE 
670 

680 PRINTtl : PRINT#1 , "Voulez-vous: " : 
PRINT#1 : PRINT#1 , " 1 ) Continuer" : PRIN 
T#l,"2) Reco«siencer":PRINT#l,"3) Ar 
reter": RETURN 

690 '*** INITIALISATION 1 *** 
788 MODE 1:INK 1,1:INK 2,1:INK 3,1: 
HINDOU #0,41-FIN,40,1,FIN:PAPER 2:P 
EN 3:CLS:WND0« #1,1,40,7,23:WNDOW 

#2, 1,34, l,6:UIND0tf #3, 1,40,24, 25:R 
ETURN 

710 '♦*« INITIALISATION 2 »** 
728 CLS; CLS#1:CLS#2: LOCATE #2, 1,1:P 
RINT#2,CHR$(24!+"C0UPS:"+CHR*(24):P 
RINT#2," 8":PRINT #2,CHRI(24)+"TEMP 
5:"+CHR*(24);PRINT*2," 0: 8":P0INT= 
1088:S=0:M=8:COMPTEUR=0 
. 738 RETURN 



748 '*** ECOULEMENT TEMPS *»* >TB 

750 S=S+1:IF S=60 THEN S=0:M=K+1 >ZG 

760 LOCATE »2,1,4:PRINT #2,USING "# >AD 

t";M;:PRINT I2,":"::PRINT #2,USINS 

"#t";S;:IF «=30 THEN RUN 

778 RETURN >ZK 

788 '*** DATA ROUTINE MACHINE *** >TF 

798 DATA CD,60,BB,32,7,B0,C9 >VG 

B88 DATA 3A, 17, 88,47, 3A,16,88,C5,F5 >AC 

,11,0, 8,21, BF,1,D5,E5, El, Di,D5,E5,C 

D, F8,B8,FE, 0,28,31, CD, DE, BB,ED,5B,1 

0,80,2A,14,80,CD,C0,BB,1 1,8,8,21,0, 

0,CD,ED,BB, 11, 2,0,21, 0,0, CD, ED.BB, 

11,0, 0,21, FE,FF,CD,ED,BB, 11, FE,FF,2 

1,0,0,CD,ED,BB,ED,5B,10,80,13,13,13 

,13 

818 DATA ED,53,10,88,E1,D1,F1,C1,FE >YM 

,1,28,9,3D,C5,F5,13,13,D5,E5,1B,A7, 

78,FE,1,CB,5,C5,3A,16,80,F5,11,0,0, 

D5,2B,2B,E5,ED,5B,12,S0,ED,53,10,B0 

,2A, 14,80,26, 2B,2B,2B,22, 14, 80, 18,8 

2,0 

838 '*** DATA POUSSE-POUSSE 4*4 *** >TB 

B40 DATA BUSE, SRUE, IBIS,OIE >XR 

850 DATA LOIR,MARA,PIKA,RAT >XP 

860 DATA 127,128,129,138,131,132,13 >LK 

3, 134, 135, 136, 137, 138, 139, 148, 141 

870 DATA 143,144,145,146,147,148,14 >«D 

9, 150, 151, 152, 153, 154, 155, 156, 157 

888 '*** DATA ROUSSE-POUSSE 5*5 **» >TS 

890 DATA AR60N,AZOTE,ETAIN,PLOMB,21 >JD 

NC 

908 DATA CY6NE,HER0N,HIB0U,PQULE.RA >3» 

LE 

910 DATA 127,128,129,130,131,132,13 >PB 

3, 134, 135, 136, 137, 138, 139, 140, 141, 1 / 

42, 143, 144, 145, 146, 147, 148, 149, 150 

928 DATA 152,153,154,155,156,157,15 ;QZ 

B, 159, 168, 161 , 162, 163, 164, 165, 166, 1 

67, 168, 169, 178, 171, 172, 173, 174, 175 

930 '*** DATA POUSSE-POUSSE 6*6 *** >TC 

940 DATA CHLORE, CUIVRE, NICKEL, SOUFR >Z6 
E, TITANE, XENON 

950 DATA COFFRE, DI0B0N,BARD0N,60UJ0 >Z8 
N, SAUMON, TETRA 

968 DATA 127,128,129,138,131,132,13 >ZA 
3, 134, 135, 136, 137, 138, 139, 148, 141, 1 
42, 143, 144, 145, 146, 147, 148, 149, 158, 
151 , 152, 153, 154, 155, 156, 157, 158, 159 
,160,161 

970 DATA 163,164,165,166,167,168,16 >AE 
9, 170, 171, 172, 173, 174, 175, 176, 177, 1 
78, 179, 180, 181, 182, 183, 184, 185, 186, 
187,188,189,190,191,192,193,194,195 
,,196,197 



r32> 



; 



// 



98e '*** HISE A ZERO *** 
990 RESTQRE 790: FUR A*&B000 TO mm : 
6:READ Vt:V=VAL("& n +V$):POKE A*V;NE 
XT:F0R A=&802& TQ &B0AFiREAD V$:V=V 
ftU n &*+V$):P0KE A,v';NEXT:POKE &8010 
,80iPQKE &8011,0îPOKE &B012,80iPÛKE 

feS013,0:PQKE &B0i4,46FiPQKE &8015, 
liPQKE &80ii,i2e:P0KE &B017,16iPÛKE 

£8039,0 

1000 RESTORE 84y : RAND0HIZE ÎÏHEîFIN . 
=4:NiyEAU=i:6RILLE=i:H0DE 1:CALL &B 
C02:PEN 1: PAPER 
101Ô RETURN 

102O '*** PRESENTATION *** '. 
1030 MODE Iï INK l.lîPEN IsPRINT" PO : 

USSE-PQUSSE "rPRINT" 

fl :CALL &8020:LOCATE 1,25;PRINT:PRIN 

T:PRINT:LQCATE l,4ïINK 1*24 

1040 LQCATE 12,5:PRINT"{Par David P : 

AVEN)":«INDQM #1, 1*4», 1, SïMINDOW 1, 

40,6,25 

1050 LOCATE i,2:PRINT B -PQUSSE-PQU5S : 

E est un jeu ou vous devez reforme 

r des mots puis des .images en ut 

îiisant les flèches corae suit:";PR : 

INT TAB(2;,CHR$!241i+":DepUce ver 

s le bas le caractère situe 3 

u dessus du carre vide, " 

1060 PRINT TAB(2i,CHR$(240)+":Depla 

ce vers le haut le caractère 

situe au dessous du càrrs vide,":PR 

INT TAB(2!,CHR*i243)+":Deplace ver 

s la droite le caractère situe a 

gauche du carre vide." 
1070 PRINT TABt2),CHR*<242)+":Depla 
ce vers la gauche le caractère 
situe a droite du ckrre vide. U ;GÛSU 
B 1170 

1080 CLSiLQCATÉ i,2:PRINT"-Il y a 
trois niveaux differénts:Dans le 
premier niveau, les tableaux mesuren 
t 4*4 caractères, dans le deuxième 
5*5 et dans le troisième 6*6. rt :LÛCÀ 
TE i,7:PRINT"-Chaque niveau compor 
te 4 tabIeaux:Dans les 2 premiers v 
ous devez" 

1090 PRINT CHR$(il)+STRIN6$(2o,CHR$ : 
(9))+" reconstituer des mots et 
dans les 2 suivants vous devez réc 
onstituer des images. "rLOCATE 1,12: 
PRINT"-Au début de chaque tableau. 1 

ordinateur vous donne 1000 points 
,mais il vous en"; 

1160 PRÏNT ■ enlevé 20 toutes le ; 
s minutes et 1 a chaque déplace 
ment (c'est largement suffisant!. A 
prçs chaque tableau votre AMSTRAD 
ajoute ce qui reste de ces pa 



ints 3 ceux qui ont ete précéderas 
rît obtenus (enfin espérons !!)." 
1110 GQSUB H 70 

1120 CLSiLQCATE 1,2:PRINT"-Quand v 
ous pensez avoir entièrement ret 
onstitue un tableau verifiez-le e 
n appuyant sur 'V , votre AMSTRA 
D vous dira alors si c'est correct 
ou non, Dans"; 

1130 PRINT" les deux cas vous aure 
: alors le choix entre: ":PRÏNT," 
-l:Contmuer:Soit vous poursuive: 
la reconstitution du tableau soi 
t vous passez au tableau suivant." 



(j£ft?0SS6> 




i i 40 PRINT," -2:Recom»encer;Vous 
rejoue: depuis le début. "SPRINT, " 
-3:Arreter:A n'utiliser qu'au bord 
de la dépression nerveuse. ":S0SUB 
1179 

1158 CLS:LOCATE l,2;PRINT"-Pour vo 
us aider a reconstituer les ima 
ges.une fonction loupe est prévue 
; En appuyant sur 1 une image deu 
x fois plus grosse apparaîtra. Elle 
sera munie d'un cadrillage qui 
vous sera très utile." 
1140 LOCATE 9,11:PRINT"ET MAINTENAN 
T ALLONS-Y !!":60SUB il70:RETURN 
1178 LOCATE 9,29:PRINT CHR*(24!+" A 
ppuyer sur une touche "+CHRK24! 
1188 CALL MB93:CALL iBB06: RETURN 
1198 '*** 6RILLE A RECONSTITUER *** 



1288 SOSUB 6W:X=l:V=i:FQR A=l TO L >0J. 



EN (CHAINE* > : Ct=MID$ (CHAINES, A, i ï 

1218 LOCATE X,Y:PRINT C*;:X=X+1:IF >BC 

DFIN THEN X=liY=Y+l 

1229 NEXT >K6 

1230 INK i,24:INK 2,26: INK 3,0:CLS# >DT/ 
2:CLS*1:PEN t2,l:PRINT#2,CHR*!24)+" / 
Votre score:"+CHR$(2«:PRINT#2,SC0R 
E:PEN #1,1:L0CATE 11,1, 1:PRINT#1, "- 
Observe: bien ces deux représentât 

ions avant de continuer. ";:PEN #2,1 

iLOCATE #2, 19, 1:PRINT*2, "Tableau nb 

rmal:"; 

1248 GOSUB 1588:INI( 1,1:INK 2,1:INK HZ 

3, 1 : CLS : CLS#1 : CLS#2 : CLS#3: RETURN 
1258 '»** GAGNE *** >Yft 

1268 PRINT#3,REHAIN<3)iH0DE iiPAPER ;« I 

0îPEN kLOCATE l,2:PRINT"-BRAV0,vo / 
us ete un champion "+NÛM$+":":N1=1: 
N2=i5:ASS=7209;6OSUB 1650:PRINT:PRI 
NT" vous ave: réussi a reconstituer 

les 12 représentations. ":PRINT 
1278 PRINT" Il ne vous reste qu un >UA , 
e chose a faire, c'est d'améliorer 
votre score: ";SCORE:PRINT:PRINT"V 
oulez-vous 1) Arrêter ou 2? recomme 
ncer":CALL 46B03 
1288 Rt=INKE¥*:IF R*="" OR (R$0"1" >ËF 

ANO R*<>"2") THEN 1288 EL5E IF R*= 
"1" THEN 1758 ELBE BOSUB 9B0:GOSUB 
1578: GOTO 88 

1298 '*«» REDEFINITION DE CARACTERE >YE 
S *## 

1390 '*«* HOME A LUNETTE SANS CHEV »ffi 
EU); *** 

1318 DATA 8,8,9,8,1,3,3,6,0,63,64,1 M , 
28,128,0,0,9,0,248,4,2,1,8,8,9,8,8, / 
0,0,128,192,224,96, 6,14,14,14,14,9 
,9,9,0,0,0,30,63,94,78,66,9,9,0,15, 
31,238,229,161,112,112,112,112,240, 
224,80,80,9,6,6,2,1,0,0,1,68,33,39 
1329 BATA 9,9,131,196,193,162,31,0, >NÙ 
224, 0, 240, 8, 225, 80, 160, 64, 64, 64, 64, 
128,0,3,7,11,19,99,129,1,1,224,112, 
56,28,15,135,128,128, 2,2,5,9,241,2 
41,1,1,0,0,9,128,64,48,12,2 
1338 '»** HOMME SANS LUNETTE AVEC D >XK 
ES CHEVEUX *♦* 

1349 DATA 0,0,1,3,7,"15,15,15,63,127 >FL 
,255,255,255,255,255,255,249,248,25 (= 
2,254,255,255,255, 255,9,0,9,0,0,1 z 
28,128,192,31,31,31,15,15,31,31,15, 3 
255,255,240,128,0,9,0,248,199,7,7,7 "î 
,27,97,129,176,224,224,224,224,224, | 
224,224,224,15,15,15,7,3,3,1,0,180, S 
52,4,4,4 1 

1359 DATA 132,131,128,48,9,0,32,16, >BE .2 
136,0,0,144,144,144,160,160,64,64,1 | 
28,9,0,0,9,0,0,3,15,71,34,35,17,24, J 



fl^vv 1 ** 



252, 254,255,241, 33,227, 195,7, 15.31, ' 

255,6,8,6,8,0,0,0,6,8 

1366 '*»* ELEPHANT D'ASIE SE PROHEN >ÏC 

ANT **» 

137B BATA 6,8,8,8,1,6,4,5,6,6,6,0,2 >NF 

55,92, 118,97,8,9,0,31,224, 128, 128,2 

24,9,9,224,28,3,9,9,9,8,9,6,9,8,192 

,48,24,8,24,19,19,16,16,16,32,299,1 

2, 9, 1 , 79, 183, 127,255, 160, 194, 194,28 

2,291,145,144,144,8,8,9,8,8,1,194,9 

,12,14,42,79,79,134,6,6,39,46,124,5 

2,36,36,36 

1389 DATA 36,63,15,3,3,7,6,14,14,12 >FN 

,75, 132, 167, 63, 15, 56, 16,8, 1,2, 4, 196 

,252.62,31.6,6.18.15,15.15,22,8.52, 

28, 1», 15,7,56, 127,255, 15, 14, 14,287, 

286,222,63,254,16,168,96,168,39,63, 

31,159,31,31,15,15,15,255,255,255,2 

32, 152, 164, 196, 136,28», 168, 249,255, 

255, 127 

1398 DATA 127,63,15,8,8,255,255,255 >BD 

,255, 255, 255, 8,8, 255, 255, 255, 255, 25 . 

5,255, 8, 9,255, 255,254,254, 252,248,9 ' 

,8,8,8,9,9,8,9,9,9,8 

1488 '♦** AVION SURVOLANT DES MONTA >XH 

GNES ♦♦* 

1418 DATA 8,8, 8,8,8,8,8,9, 9,8,9,8,9 >ML 

,8,9,9,9,8,9,9,8,8,1,7,8,9,8,9.48,2 

49,224,192,9,9,8,6,9,9,9,224,9,9,9, 

8,15,31,15,6,9,9,9,7,255,255,255,3, 

127,63,126,252,255,255,255,248,128, 

1,3,7,255,255,252,8,224,224,248.246 

,224,224,96,8,8,9,6,6,8,9,8,8,1,7,8 

,8,6,8,8,6 

1428 DATA 248,252,62,247,3,6,9,9,8, >HM 

6,8,8,6,8,8,6,9,8,8,6,6,9,8,6,9,9,8 

,6,8,9,9,9,8,8,9,9,8,6,6,9,6,6,9,9, 

9,9,9,3,6,9,6,6,6,8,8,128,8,6,6,8,8 

,8,8,9,9,9,9,8,9,6,15,21,9,6,31,53, 

196,213,235,215,126,213,179,85,171, 

215,175,223,224,88,174,87,179,213,1 

71,87,9,7 

1439 DATA 26,245,171,87,176,213 >XJ 

1448 '«** HIPPOCAMPE (CHEVAL DE MER.XYB 

) *** 

1458 DATA 6,8,8,6,8,6,6,8,6,6,6,12, >NF 

11,24,15,8,5,13,54,56,217,1,242,29, 

48,246,264,178,156,188,47,198,6,8,9 

,9,9,9,8,64,8,9,9,9,8,8,8,8,68,68,1 

24,68,68,8,16,16,8,8,6,8,9,1,2,2,7, 

3,29,119,149,82,41,165,31,228,183,7 

4,253,158,288,96,128,6,128,8,6,6,6, 

6,62,32,32 

1466 DATA 32,62,9,62,34,16,16,16,9, >LU 

124,68, 124,64,6,5, 4,7, 5,5,3,3, B7, 29 

, 193, 153, 223, 177, 297, 185, 255, 126, 25 

4, 254, 252, 252, 252, 248, 8, 6, 8, 8, 6, 6, 8 

, 0, 62, 34,34, 6, 34, 54, 42, 34, 64, 8, 124, 



68,124,64,64,8,2,3,3,7,3,1,6,6,239, 

73,247,164,159,139,133,2,248,126,24 

8,176,144 

1478 DATA 128,96,168,8,8,8,8,8,8,6, >HU 

8,34,8,62,34,62,32,32,8,124,68,68, 

68, 124, 8, 6, 8, 6, 8, 6, 6, 6, 8, 6, 8, 1 , 8, 6, 

8,8,6,6,9,89,248,88,194,52,68,36,28 

,8,8,6,8, 6,8,8,6,62,32,66,32,62,6, 

8,6,8,6,6,8,8,8,8,8,8,8,6,6,6,6,8,6 

,7,15,13,11,5,7,8,6,148,156,52,232, 

68,224,6,8 

1489 DATA 6,8,8,8,8,6,8,8,6,8,8,8,8 >GR 

,8,6,6,6 

1496 'H* PANDA GEANT: SYMBOLE DE SA >¥G 

UVEGARDE *** 

1566 DATA 8,65,65,65,65,125,9,6,6,2 >K6 

48,8,224,6,246,9,6,6,62,34,62,32,32 

,6,1,8,256,139,258,138,138,8,128,6, 

47,46,168,164,47,8,6,6,62,162,198,1 

62,34,9,8,6,6,8,8,8,8,9,9,8,9,9,8,1 

,2,4,8,3,3,31,110,152,56,112,224,19 

2,192,254,3,1,9,9,8,6,8,6,224,246.2 

46,224,64 

1516 DATA 8,8,6,8,8,6,6,6,9,0,0,6,9 >LA 

,6,8,6,8. 16, 16, 16,17, 17, 19,27,224,2 

25, 227, 243, 251 , 252, 254, 255, 6, 192, 78 

,266,16,14,182,145,64,32,32,32,48,1 

12,248,248,6,6,6,6,6,8,6,6,8,6,6,6, 

8, 6, 6, 8, 63, 63, 63, 63, 63, 62, 62, 28, 255 

,255,255,255,255,255,255,127,255,25 

5,255,129 

1526 DATA 129,131,227,247,248,248,2 >NN 

48,248,248,248,248,248,6,6,6,8,6,6, 

8,8,8,8,6,8,6,8,8,8,6,8,8,6,8,6,0,6 

,63,31,7,8,148,156,149,148,247,243, 

224,0,128,128,128,128,224,192,6,0,6 

,0,0,0,6,8,6,6,6,0,8,6,8,6,61,32,66 

,4,66,8,0,6,26,166,69,68,68,6,244,6 

,92,216,94 

1536 DATA 82,92,6,128,0,244,148,148 JH 

,148,247,0,8,6,66,32,56,32,188,6.0, 

0,8,0,8,8,8,8,8 

1546 RESTORE 1316:SY=127:F0R IM=1 T >MB 

2: FOR N=l TO 128 STEP BlREAD A,B, 

C,D,E,F,E,H:S¥HBOL SY,A,B,C,D,E,F,B 

,H:SY=SY+1:NEXT N:RESTORE 1348-.NEXT 

IM:RESTORE 836:RETURN 
1556 RESTDRE 1376; SY=127: FOR IM=1 T )MD 
2iF0R N=l TO 286 STEP 8:READ A,B, 
C,D,E,F,G,H:SYMBOL 3Y,A,B,C,B,E,F,6 
,H;SY=SY+1:NEXT N:RESTORE 1418:NEXT 

IM:RESTOR£ 898:RETURN 
1568 RESTORE 1456:SY=127;F0R Itt=l T >MZ 
2:F0R N=l TO 289 STEP 8:READ A,B, 
C,D,E,F,S,H:SYMBOL S¥,A,B,C,D,E,F,S 
,H:SY=SY+1:NEXT N;RESTORE 1596:NEXT 

IMiRESTORE 948:RETURN 
À1576 ON FIN-3 BOSUB 1548, 1556, 1566: /JN 



RETURN 

1586 »** LQUPE *** 
1598 POKE 18010, (638-FIN*32)/2:P0KE 
5,8011, 0:POKE 48812, (638-FIN»32)/2; 
POKE Î<8613,6:P0KE 48014,4FE:F«E 48 
815,6:P0KE 48616,FIN»8:PÛKE 48617, F 
IN*8:P0KE 4S82D,4BE:P0KE 4S62E,i:P0 
KE 4862A,448-(16«<FIN-4i>:P0KE 4862 
B,2:P0KE 48639,2 

1686 POKE 48695. 446-ll6*(FIN-4! ): PO 
KE 48696,2 

1616 HINDOU I4,28-FIN-H,26+FIN,16,9 
+FIN*2: PAPER M,2:CLS#4:CALL 48026 
1620 C=(638-FIN*32!/2:FÛR A=0 TO 32 
♦FIN STEP 32:M0VE C+A,254:DRAHR 8,- 
FIN*32,3:M0VE C,254-A:DRANR FIN*32, 
6:NEXT A 

1638 LOCATE #1,Î,4:PEN tl,l:FRÎNT»i 
,"îableau":PRINT#l, "agrandi: ":UKBT 
E #3,2,1:PRINT#3,CHR*I24)+" Appuyer 
sur une touche pour continuer "+CH 
R*I24):CALL 4BB03 

1640 R*=INKEY$:IF R$="" THEN 1640 E 
LSE WNDOW #1,1, 40,7, 23:CLS#1:CLS#3 
: RETURN 

1650 '*** APPLAUDISSEMENTS NOURRIS 
*#* 

1660 FOR I=N1 TO N2 
1676 SOUND 5,3,268,15-1,6,8,31 
1686 NEXT:FQR N=l TO ATT:NEXT N 
1696 RETURN 
1786 '«* PERDU *** 
1718 ENV 1,15,-1,16 
1726 ENT -1,18,4,1,1,-26,1 
1736 SOUND 2,868,8,15,1,1 
1748 RETURN 
1758 '*«* FIN »*♦ 

1760 PRINT CHRtl7);:PRINT#3,REMAINl 
3>:M0DE 1:PAPER 0:PEN 1:L0CATE 13,1 
UPRINT CHR$(24)+STRIN6$(14," "!+CH 
R»(24):L0CATE 13,12:PRINT CHRS1241+ 
" Au revoir M "+CHR$< 24): LOCATE 13 
,13:PRINT CHR*(24>+STRINB»(14," ")+ 
CHR*i24i+STRIN6t(10,CHR$(18l):RESTO 
RE 1886 

1765 FOR ATT=1 TO 1860;NEXT ATT 
1776 READ PERIODE, DUREE 
1780 IF PERIODEO-1 THEN SOUND 1,PE 
RIODE, DUREE: SOUND 2, PERIODE+2, DUREE 
: SOUND 4,PERI0DE+2,T)UREE ELSE END 
1796 BOTO 1770 

1806 DATA 638,60,478,85,6,5,478,25, 
8,5,478,68,379,68,426,96,478,36,426 
,66,379,69,478,85,6,5,478,36,379,68 
,319,68,284,175,6,5,284,66,319,96,3 
79, 25, 6, 5, 379,66, 478, 68, 426, 96, 478, 
36,426,68,379,68,478,90,568,25,8,5, 
568,60,638,60,478, 120, -!,-!• 



;ML 
>WK 
>ZT 
>FK 
,>ïA 
>LR 
>RY 
>RG 
)FF 
>YF 
>UT 



>YD 
>TX 
)ZH 



>NK 

?JV 



SE DETENDRE ET S'INSTRUIRE 
PAR LA LECTURE 




: 




' r R 


M 




t% 




^ ««: 






Bii Mk 






AMSTAR 

Mensuel informatique 
vendu en kiosque et 
par abonnement, 
Présentation de jeux 
et nouveautés sur Amstrad . 
Tous les mois un concours I 



CPC 





ARCADES 


jqrcacleSj* 






Mensuel informatique et 




communication vendu en 


fdjERr-v- 


kiosque et par 


4i r ,: **"' 


abonnement, 


■rir ' 


Présentation de jeux. 


Ki J g* < '>if.;'- 


nouveautés, sur toutes 


h$m> 


machines, consoles de 
Jeux et minitel. Concours 
mensuel permanent. 



Mensuel informatique 
dédié aux ordinateurs 
Amstrad 



MEGAHERTZ 
MAGAZINE 

Mensuel de 

communication amateur 
actualités. Informatique 
technique. 




VIVEZ LA MICRO EN FAMILLE 

Toutes nos revues 

sont vendues en kiosque. 



Istrc 


ilimir 


mwc-MocKy. 




lAfffl/STW! 




Dossier: 


m m 


'■'• r -''-' : -'-""--"- ; 





CPCHS 

Numéro hors-série 
comprenant uniquement 
des listings sur Amstrad . 
Paraît tous les deux mois. 



PCOMPATIBLES 
MAGAZINE 

Mensuel informatique 
consacré aux ordinateurs 
compatibles. Actualité, 
technique, listing. 



ASTROLOGIE 
PRATIQUE 



Mensuel d'astrologie (et 
non de voyance). Outre 
l'information, les thèmes 
développés touchent à 
la pratique sérieuse de 
I astrologie. 



Si vous souhaitez recevoir un exemplaire de presse, envoyez 20 F en timbre ou chèque à : 
Editions SORACOM- La Haie de Pan- 35170 BRUZ. 






G 

N 
E 
Z 

D 

U 

T 
E 
M 
P 

S 



PROFITEZ DES PRIX BRETAGNE EDIT'PRESSE 



BOITES DE 
RANGEMENT 
MEDIA BOX 
POSSO 




Pour 40 
à 150 disquettes 



1 3", 3" 1/4, 3" 1/2 



nsf 



DISQUETTES, «•» , 

Recommandé facultatif 
3" par Boîte 7 F en plus 






COMPACT 
DISC 

Pour 13 compact 
dises 

Port 25 F 
Recommandé facultatif 

par Botte 7 F en plus 



Pour 

16 minicassettes 



95F 



CASSETTES, «?,,,, 

Recommandé facultatif 

AUDIO p" B ° ite 7 F en p |us 





/42F 



VIDEO 

Pour 9 cassettes 

vidéo VHS, V20Q0 

Beta 



Port 25 F 

Recommandé facultatif 
par Boîte 7 F en plus 




Pour 50 
à 70 disquettes 

/75F 



DISQUETTES pm25F 

rtt m m Recommandé facultatif 

ÎJ 1/4 P ar Bo ' ,e ? f 5n nlus 



c 

L 
A 
S 
S 
E 
Z 

E 
T 

P 
R 
O 

T 
E 

G 
E 
Z 




^J 



• Boîte DATA Case 5"1/4 (50 disk) 
10 disquettes D F D D 5"1/4 
Votre petit cadeau surprise gratuit 
d'une valeur de 50 F 



120 F 

+ 

Port et emballage 25 F 

Total Lot 145 F 



• 1 Boîte DATA Case 3"1/2 (40 disk) 
10disquettesDFDD3"1£ 

Votre petit cadeau surprise 
d'une valeur de 50 F 



260 F 

+ 

Port et emballage 25 F 

Total Lot 285 F 



• 1 Boîte DATA Case 3" (20 disk) 

10 disquettes MAXELL D F D D 3" 
Votre petit cadeau surprise 
d'une valeur de 50 F 



340F 

+ 
Port et emballage 25 F 

Total Lot 365 F 



• Boîte DATA Case seule 
3" 3"1/2 5"1/4 



85F+15FPort 
et emballage 



Désignation 



BON DE COMMANDE 

A adresser à BRETAGNE EDir PRESSE - La Haie de par, - 351 70 BRUZ - Tel. 99.57.90.37 
Réf. Qté Prix unit Montant (écrire en majuscules) 



Forfait de port + emballage 
Recommandé (facultatif) 



25 F 



10 F 



NOM. 



Code postal . 



.Ville. 




TILITAIRES 





ol 


Q- 


co 1 


rr 


n a 


j U_ .,; 


n 1 

ol 


Q — JS 




cn=^" 




"•* 


=.~ 1 




ol 




- ■ '■ ol 


coB^^B 










— --— o 1 


Ua- i 


— i 1 ^ 1 


■"^ —M 




co = 


-ni 


CNt: 


^'1 


2^^ 


1 '" o 1 











I 




SOMMAIRE 




TT 



Photo de couverture : Patrick LOPEZ 

ANTI-ERREURS 

3 

MUSIQUES 



9 

PRET 
RESISTOR 
DIVISION 

22 

LE PETIT TRAIN 

MAGNETIC 
POUSSE-POUSSE 

30 



A L'ATTENTION 
DE NOS LECTEURS 



MOTS CROISES 



RELIEFS MATHEMATIQUES 



Ce numéro de CPC est un hors-série ne com- 
portant que des listings. Il paraît tous les deux 
mois dans les kiosques et il est offert aux abon- 
nés. Ne confondez pas avec le CPC mensuel ! 




CPC est une publication du 
groupe de presse FAUREZ- 
MELLET 



Directeur de publication 

SylvioFAUREZ 

Rédacteur en chef 

Olivier SAOIiTTI 

Rédaction 

'Catherine VIARD 

Correspondants 

Marseille : Karine ELGHOZI 

Paris : Anne-Marie THOMAZEAU 

Secrétaire de rédaction 

Florence MELLET 

Rewriter 

Isabelle IIALBERT 

Directeur de fabrication 

Edmond COUDERT 

Maquette 

Jean-Luc AULNETTE- 

Secrétariat - Abonnements 

CatherineFAUREZ-Tél 99.52.98.11 

Relations extérieures- Promotion 

S. FAUREZ 



Administration - Diffusion 

Editions SORACOM 

La Haie dePan - 35170 BRUZ 

RCS Rennes B319 816302 

CCP Rennes 794.17V 

Tél. 99.52,98.11 + 

Télex SORMHZ 741.042F 

Serveur 3615 MHZ 



Vente au réseau exclusivement 

B.E.P. 5, rue du Fbg Montmartre - 75009 PARIS 

C. CHOUARD Chef des ventes 

Tel. 1.47.70.06.71 

Régie publicitaire 

IZARD CREATION- 15. rue St-Melaine 
35000 RENNES - Ta 99.38.95.33 



AMSTRAD» 
CPC est une i 



iemarque déposée. 

e mensuelle totalement indépen- 



dante d'AMSTRAD GB et D'AMSTRAD FRAN- 
CE. 

Les noms, prénoms et adresses de nos abonnés sont 
communiqués à nos services internes du groupe, 
ainsi qu'aux organismes liés contr actuellement 
pour le routage. Les informations peuvent faire 
l'objet d'un droit d'accès et de rectification dans le 
cadre légal. 

Les articles et programmes que nous publions dans 
ce numéro bénéficient, pour une grande part, du 
droit d'auteur. De ce fait, ils ne peuvent être imi- 
tés, contrefaits, copies par quelque procédé que ce 
soit, même partiellement sans l'autorisation écrite 
de la Société SORACOM et de l'auteur concerné. 
Les opinions exprimées n'engagent que la respon- 
sabilité de leurs auteurs. Les différents montages 
présentés ne peuvent être réalisés que dans un but 
privé ou scientifique mais non commercial. Ces ré- 
serves s'appliquent également aux logiciels publiés 
dans la revue. 

Dépôt légal à parution 
Distribué en Suisse par : 

SEMAPHORE -Tfl. 02254.1 1.95 




R 





Il est difficile de taper un programme 
d'une revue sans commettre d'er- 
reurs ! Quand les erreurs sont signa- 
lées (Syntax error in. . ., Une does not 
exist in...), la correction est facile puis- 
que la ligne est indiquée, mais 
lorsqu'au "point de vue" du CPC, le 
programme est correct, il peut en être 
tout autrement pour le lecteur : 
Si le fonctionnement du programme 
ne correspond pas vraiment au pro- 
gramme original, alors il est impossi- 
ble de retrouver l'erreur commise, à 
moins de comparer les lignes de votre 
programme avec celles du journal 
mais c'est très long et on risque de pas- 
ser sur une erreur sans la voir. 
C'est pourquoi ce programme a été 
créé ; il est à utiliser si vous ne retrou- 
vez pas vos erreurs. 
La frappe d'un programme de votre 
journal favori (CPC) terminée, vous 
faites "RUN" et là, vous corrigez tou- 
tes les erreurs signalées par le CPC en 
vous référant au journal pour compa- 
rer. Si, malgré cela, il ne tourne tou- 
jours pas, suivez cette procédure : 

— sauvez votre programme en ASCI I 
grâce à l'instruction : Save "nom 
prog", A. 

Puis, si vous êtes sur K7, rebobinez la 
bande jusqu'au début du fichier ; 

— chargez Anti-Erreurs ; 

— entrez le nom de votre programme 
et insérez le support où il se trouve (K7 
ou disquette). 

Après quelques secondes, les numéros 
de ligne vont défiler. Vous remarque- 
rez qu'à chaque ligne correspond un 
code de 2 lettres sous cette forme : 
>XX< ; c'est le code' qui va vous 
permettre de savoir d'où proviennent 
les erreurs. Pour cela, il faut que vous 
compariez les codes du journal à ceux 
de Técran. Si un code diffère, notez 
sur papier le numéro de ligne qui cor- 



IGrégory NOE 



respond à ce code. Continuez ainsi 
jusqu'à la fin du listage. 
Le défilement terminé, recherchez 
votre programme et corrigez les lignes 
que vous avez notées en comparant 
avec le journal. Faites "RUN" et ô 
miracle ! ça marche. 
Attention, iors de la frappe du pro- 
gramme a traiter, n'omettez aucun 
caractère (sauf les espaces) car Anti - 
Erreurs les prend en compte et bien 
sûr, ne tapez pas les codes de contrôle.. 



A TTENTION : cette nouvelle ver- 
sion n'est pas compatible avec 
l'ancienne. Seuls les programmes 
publies dans ce numéro possèdent 
un code anti-erreurs correct. 
Les instructions de chargement res- 
tent, elles, inchangées. 



ANTI - ERREURS 



10 ' *(«#*#»#*♦*(*#♦**#*♦**♦#»»*#* 

26 ■ # t 

38 ' * 

m ■ # 

50 ' * 

68 ' # 



VERSION 2.8 * 
t 
78 ' *»*»*«»♦#*»*#*»***#*#*#*#*#♦ 



(c) CPC \ 6. NOE 1987 



'< INITIALISATION > 
'■ <««««««««««««« 

.58 ' 

68 ON ERROR 60TO 1258 

78 HODE 2 

88 DM G*<23) 

.98 FOR 1=8 TO 22:READ G*:6*(I)=G*: 

NEXT 



288 'ATTENTION LA LIGNE DE DATA CI- >RC 
DESSOUS NE CONTIENT PAS TOUTES LES 
LETTRES DE L'ALPHABET ! I ! 
218 DATA fliB,C,0,E,F,6,H,J,K,L,H,N, >AD 
P,Q,R,-T,U,V,N,X,Y,Z 

228 ' ANTI-BUS FICHIER >RE 

238 IF PEEK(HIMEM+1)=255 THEN 2B8 >ZD 

248 OPENOUT "CPC" >NA 

258 MEMORY HIMEM-2 >NX 

268 CL0SE0UT >RJ 

278 POKE HIMEM+1,255 >FP 

288 DEFINT B-Z >«H 

298 ' >TB 
388 BORDER 6:!NK 8,i:INK 1,16:PEN 1 >JN 
: PAPER 8 

318 MOVE 8, 16:DRAB 658,16 >TK 

328 PRINT TABI27) "A N T I - E R R >GU 
EUR S ";CHR$(24l;"Version 2.8" 
;CHR*(24) 

338 MOVE 8,385:DRAW 658,385 >UJ 
348 LOCATE 24,25:PRINT"CPC REVUE DE >EV 
S STANDARDS AMSTRAD" 

358 WINDOW 1,88,3,23 >NL 

368 M$="Rss!ise par Brsgory NOE" /HJ 

378 F»="" >XA 

388 FOR 1=1 TO LEN(M$! )PU 

398 F*=F$+MID*(M*,I,i) >PL 

488 LOCATE 78-I,5:PRINT F$ >UL 

418 FOR T=l TO 188 >LQ 

428 NEXT T,I >EF 

438 ' >RH 
448 ' ##♦********#*#*********##**** >RJ 
**** 

458 ' >RK 

468 LOCATE 2,l:PRINT"ENTREZ LE NOM >XT 
DU FICHIER : "; 

478 INPUT "%NF* >FD 

488 IF NF$="" THEN PRINT CHR«(7!:60 >6R 
TO 468 

498 LOCATE 2,3:PRINT"IRPRIMANTE OU >VR 
ECRAN (I/E)?" 

588 R*="":«HILE R$="":R*=UPPER*(INK >NK 
EV»):NEND 

518 IF R»="I" THEN CA=8:PRINT»BRANC >XD 
HEZ-LA..." ELSE 548 

528 PRINT#8,CHR*(27);"!";CHR*f20) >AR 

538 GOTO 568 >ZF 

548 IF R$="E" THEN CA=8:G0T0 568 >VQ 

558 B0T0 588 >ZB 

568 CLSiLOCftTE 2,3:PRINT"TANT QUE L >0R 
E LISTAGE N'EST PAS TERMINE" 

578 LOCATE 2,5:PRINT"NE PAS ARRETER >JW 
LE MAGNETOPHONE OU NE" 

588 LOCATE 2,7:PRINT"PAS SORTIR LA >TL 
DISQUETTE" 

598 LOCATE 2,18:PRINT"PRESSEZ UNE T >HH 
OUCHE POUR LA LECTURE" 

688 CALL ((BB85 >LH 

618 ' >RH 

628 ' «««<«««««««« >RJ 



'f^ 



630 '< TRAITEMENT DU FICHIER > 


>RK 


448 ' »»»»»»»>»»»» 


>TA 


658 ' 


>TB 


668 OPENIN "!"+NF* 


>LF 


678 CLS:PRINT"TRAITEMEf»T EN COURS.. 


>JR 


688 IF LEN(A*)=255 tHEN ft*="":LINE 


>¥« 


INPUT*9,8*!60T0 1168 




698 LINE INPUT#9,B$:A$=B* 


>UE 


788 IF CflOB THEN BOSUB 1318 


>VF 


718 IF INKEY(66!=8 THEN STOP 


m 


728 ' 


>RK 


738 ' CALCUL DE LA CLE DE CONTRO 


>TA 


LE 




748 ' 


>TB 


758 B=8:FLB=8 


>«B 


768 FOR 1=1 TO LENfA»! 


>PH 


778 L*=MD»(ft»,I,l> 


>riu 


788 IF L*=CHR»(34) AND FL6=1 THEN F 


,>PC 


LS=0:SQTD 848 




798 IF L$=CHR*(34) AND FLB=0 THEN F >PD 


LB=1:60T0 848 




888 IF L*=QM(32) AND FLGOl THEN 


>cx 


858 




810 IF L$=CHR*(39> AND FL6=0 THEN 8 


>Cfl 


68 




820 IF FL6=1 THEN 848 


>iœ 


830 L$=UPPER$(L$) 


>MC 


848 A=A+ASC(L*)+I 


;LU 


858 NEXT I 


>PB 


128 ' \\ \\ 


>RD 


138 ' \\ "Computer Disco" \\ 


>RE 


140 ' \\ U 


>RF 


158 ' //Conçu et réalise par// 


>RB 


160 ' // Rodolphe DEJEUNES // 


>RH 


178 ' // II 


>RJ 


180 liililimilllilllllllll 


>RK 


190 ' 


>TA 


248 MODE 1 : LOCATE 12.10:PRINT CHR$( 


>VO 



870 CH*=STR*(A) 

888 CH$=RISHTt(CH*,LEN(CH*)-l) 

898 L=LEN(CH$):L2=LEN(CH*)/2 

988 A=VAL(LEFT*(CH*,L2» 

910 C=INT(A/23) 

928 P=A-(C*23> 

938 C$=S$(P> 

948 A=WL(RISHT*(CH$,L-L2» 

958 C=INT(A/23);P=A-(C*23) 

968 Ct=C*+S$(P) 

978 ' 

988 FOR 1=1 TO 6 

998 L*=MIDS(A$,I,1> 

1008 IF L$<"0" OR L«>"9" THEN 1038 

1818 Li$=LI*+L* 

1828 NEXT 

1038 VH*="":FOR 1=1 TO LEN(A*):IF A : 

SC(MD*(A$,1, 11X32 THEN VH*=VH*+" 

"ELSE VH$=VH$+HIMI«*,I,1) 

1848 NEXT I:B*=VH* 

1050 ' 

1060 IF CA08 THEN 1070 ELSE 1098 

1078 PRINT LI»;TABU0) ">"iC* 

1088 LI*="":BOTO 1168 

1090 LI*="":PRINT#CA,LEFT$(B$,55!;T 

ABI57) ">";C* 

1180 IF LEN(B$X55 THEN 1168 

1110 FG=1 

1128 B$=MD*(B$,56,LEN(B*1) 



>TE i 


1130 PRINT#CA,LEFT$(B*,551 


m 


>CC 


1148 IF FB=1 AND CAOB THEN FB=0:6O >VB 


>YC 


SUB 1318:G0T0 1150 




>XA 


1150 GOTO 1108 


>LG 


>TY 


1168 IF EOF=-l THEN CLOSEIN ELSE 60 >HD 


>AH 


TO 688 




>LJ 


1170 IF CA=8 THEN CALL SrBB03;PRINT 


>RJ 


>XC 


TAB(50) CHR»(24);"UNE TOUCHE...";CH 




>HH 


R$(24):CALL &BB85 




>UT 


1188 CLS:PRINT"HAINTENANT RECHARGEZ 


>JC 


>TD 


";NF*i" ET CORRIGEZ LES LIGNES SUE 




>TB 


VOUS AVEZ NOTEES. . " 




>«K 


1190 END 


>¥K 


>MY 


1208 ' 


>XF 


>XJ 


1218 ■ ««««««««««««< 


m 


>XF 


1220 '< TRAITEMENTS DES ERREURS > 


:>m 


>KE 


1230 ' «««««<««<<«««« 


>XJ 


>EK 


1240 ' 


>XK 




1258 IF ERR=25 THEN CLS:PRINT CHR»( 


;>yc 




7);CHR«(24);"FICHIER NON ASCII";CHR 




m 


*(24):END ELSE CQNT 




>XJ 


1268 ' 


>YB 


m 


1270 ' «<«<«««««««<«« 


>YC 


>HZ 


1280 '< ATTENTE TOUCHE... > 


>YD 


>ND 


1290 ' «<««««««««««« 


>YE 


>9M 


1308 ' - 


>XG 




1310 COM=COH+kIF C0li>19 THEN CALL 


>AF 


>UT 


&BB03:PRINT TABI58)' "UNE TOUCHE..." 




>CB 


:CALL 8.BB05:CLS:CON=1 




>UB 


1328 RETURN 


>EK 



34)t"CoiPUter Di5co"+CHR*!34}:L0CAT 

E 10.13:PRINT CHR$(164)+" 1986 - R. / 

DEJEUNES" 

250 DATA 1.1,3.4,5,4,3,1.0,1,3,4,5, )QF 

4,3,0,1,1,3,4,5,4,3,1,0,1,3,5,4,0,3 

I ■ i - 

I 260 DIH n!32i:REST0RE 250:FOR i=l T >ZJ 
D 32:READ ndiiNEXT i 
270 DATA 179, 159, 142, 127, 149,106,95 >FB 
,89,80 

280 DIH g(10):RESTORE 270:FOR i=l T >XE 
9:READ oii!:NEXT i 
298 DATA 5,3,1,2,5,3,1,2 >0R 

308 DIH til6):REST0RE 298:F0R i=l T >YZ 
SiREAD ttihNEXT i 
310 DATA 1.2,3,1.1.2,3,2,1,2,3,1,1, >QJ 
2,3,3,1,2,3,1,1,2,3,2,1,2,3,1,1,4,1 
,4 

328 DIB b!32i:RESTQRE 318iFDR i=l T >YK 
32;READ bii):NEXT i 



338 DATA 1911,38,8.1,60,10,0,5 

340 DIH h(4i.v!4):REST0RE 330:FOR i 

=1 TO 4:READ h(i) ,v(i):NEXT i 

350 ENV 1,1. 15,1. 15.-1, 2:ENV 2.8.-2 

,1:ENV 3, 1,15,1, 15,-1. 4:ENV 4.3,5,1 

. 15.-1. 1:ENV 5,1,13.1.3,-1,2,10,-1. 

8:ENV 6,1,15,1,3,0,1,15,-1.12 

368 TEH=18 

370 FOR i=l TO 9:S0UND 7,5(1), 5, 6:N 

EXT 1 

380 FOR i=l TO 32:S0UND 4,hib(i!).t 

eni,0.bui,,v(b(i!):SOUND 3.g(t(lll, 

Se«/2,4i SOUND 3.0,te«/2,0:NEXl 1 

390 FOR i=l TO 8 

480 a=oit!lî) 

418 If'a=179 THEN q!4i=134 ELSE q(4 

5=127 

428 a=a*2 

430 FOR j=l TO 32 

440 SOUND 34,a,te«/2,0.5:SOUND 28.h 

ibul),te»,0,bi.jl,,v(b(.jii:SOUND 1, 

git(ii+n(j)-l),te*,0.6*SSN(n())i:SO 

ÛND 2,a/2,tein/2,0,5 

450 NEXT i,i 

460 «ODE 2 

470 IF 2=1 THEN FOR 1=1 TD 8: SOUND 

l,9(t(l)+n(i)-l),tei8,0,6»SBN(n(i)): 

NEXT i:END 

480 FOR i=l TO liiSDUND l.flitditnf 



/HA o 



i!-îi.ten,0,6*SGN!n(iii:SOUND 6.0. t 

ei,0:NEXT 1 

490 FOR 1=1 TO 2IF0R i=l TO 32-.S0UN >XD. 

4.h(b(i)),te«i,0.bUi,,v(bti)):SOU 

ND3,0,te«.0;NEXT i,j 

500 RESTDRE 550:FDR l=! TO 63:READ >Z(1 

t,d:SQUND 3,h!ti,d*te«i,0.t,,viti:SO / 

UND 4,0,d«te»,0;NEXT 

510 FOR i=l TO 32:SQUND 4,h(b(iii.t >AZ 

em,0,'b(ii,,v(bii)):SOUND 3,0.teit,0: 

NEXT 1 

520 FOR 1=1 TO 16:S0UND l.aitiii+ni ;>DC 

i)-l),te»,0,6«SBN(n(i)):SOUND 4,qtt 

il!+n(i)-l)/2.te«,0,6*S6N(n(ii)iSOU 

ND 2,0,te»,0:NEXT 

538 IF 2=0 THEN z=l:60T0 390 >VY 

540 END >TC 

558 DATA 1,3,1,1.1,3,1,1,1,3,1,1 >XB 

560 DATA 1,1,3,1,1,1,3.1 >QF 

576 DATA 1,3,1,1,1,3,1,1,1.3.1,1 >XJ 

580 DATA 1,1,3,1,1,1,3,1 >0H 

598 DATA 1.3,1,1,1,3,1,1,1,3,1,1 >XL 

688 DATA 1,1,3,1,1,1,3,1 >0A 

610 DATA 1,3,1,1,3,4,1,3,1,1,3,4,1, >ICX 

3,1,1,3,4,1,3,1,1,3,1,3,1,3.1,3,1 

628 DATA 1,1.5,2,0.5,3,1,1,1,1,1.5, >MV 

2,0.5,3,1,1,1 

630 DATA 1.0.5,1,1,1,8.5,1,1,1,0.5, >AV 

2,0.5,2,1, 2,1, 2,1. 5,4,8.5» 



MUSIQUES 



V'La soupe aux choux" 



Adapt.; R.DEJEUkEE . 



//// 



14e 

156 
160 
170 

m 

i% ' 

208 HOUE 1 : LOCATE 10.10:F'RINT CHR*i 
34i+"La soupe aus choux"*CHR$(34):L 
OCATE •16.13:PRINT"Ada»te par K.DEJE 
UNES" 

21» ENV 1.1.15.1,18.-1.1.2.2.1.9,-1 
,3 

226 ENT -1.1. 1.1.1. -1.1 
236 ENV 2.3.5, 1.2.-1.6. 13.-1. 12;ENT 
2.1.4.1.2.-2,1 
240 READ c.n.i.a 
250 T=T+1: IF T=100 THEN MODE 2 
260 IF c=0 THEN END 
270 IF c=l OR c=33 THEN SOUND c.n.i 
,0,1,1. a ELSE SOUND 0,0,1.9.2.2 
280 SOTO 240 

290 DATA 1.426.24,0,1.851.24,0,1,42 
6,24,0,1.851,24.0,1,426.24.0,1.851. 
24,0,1,426,24,0.1.851,24.0 
300 DATA 33.426,24.0,12,71,12,0,4,8 
0, 12, 0,33,851, 24.0. 12, B9, 12, 0,4.95, 
12,0,33,426.24,0.12,106,24,0 
310 DATA 33.851,24,0,12,104,12,0,4, 
119,12,0,33,426,24,0,12.106,24,0,33 
.851.24,0,12.106.12,0,4,119,12,0.33 
,426,24,0,12.106.12,0,4,95,12,0,33, 
851.24,0,12,89,12,0,4,80.12,0 
320 DATA 33,426,24,0,12.71,12.0,4,8 
0,12,0,33,851,24,0.12,89,12,0,4,95, 
12,0,33,426,24,0,12,106,24,0 
330 DATA 33,851,24,0.12,106,12,0,4, 
89,12,0,33,284,24.0,12,95,12,0,4,10 
6,12,0,33,568,24,0.12,95,12,0,4,119 
,12,0.33,284,24,0,12,142,48.0,1,568 
,24.0 

340 DATA 33,426,24,0,12,71,12,0,4,8 
0,12,0,33,851,24,0,12,89.12,0.4.95, 
12,0,33,426,24,0,12,106.24,0 
350 DATA 33,851,24,0,12,106,12,0,4. 
119,12,0,33,426,24,0,12,104,24,0,33 
,851.24,0,12,106.12.0,4,119,12,0,33 
,426,24,0,12,106,12,0,4,95,12,0.33. 
851,24.0,12,89,12.0,4,80,12,0 
360 DATA 33,426,24,0,12,71,12.0,4,8 
0,12,0,33,851,24,0,12,89,12,0,4,95, 
12,0,33,426,24,0,12,106.24,0 
370 DATA 33,851,24,0,12,106,12,0,4, 
89.12,0,33,284,24,0,12,95,12,0,4,10 
6,12,0,33,568,24,0,12,95,12,0,4,119 
,12,0,33,284,24,0,12,142,48,0,1,568 



■RQ 



Rodolphe DEJEUNES 



,24,0 

380 DATA 33,268,24,0,12,134,24,0,33 >ZK 

,536,24,0.12,134.12,0,4,119.12,0,33 

,268,24.0,12,106,12.0,4,95,12,0,33, 

536,24.0,12.89,24.0 

390 DATA 33.358.24. 0.12, S?. 12,0, 4. 5 M 

0.12,0.33,716,24,0,12.71,24,0.33,35 

8,24,0,12.71,12,0,4.67.12,0.33,716. 

24,0,12,60,24.0 

400 DATA 33,268,24.0,12,134.24,0.33 >HZ 

.536,24,0,12,134,12.0,4,119.12.0.33 - 

,268.24.0,12,106.12.0,4.95,12.0,33, 

536, 24, 0, 12, B9. 48, 0, 1 . 478, 24, 0,33, 9 

56,24,0,12,119,24,0,33.478,24.0,12, 

119,48,0,1,956,24,0 

410 DATA 33,268.24,0,12,134.24,0,33 >ID 

,536,24,0,12,134.12,0.4,119.12,0.33 

,248,24,0, 12, 106, 12,0,4,95, 12,0,33, , 

536,24,0,12.89.24,0 

420 DATA 33,358,24,0,12,89,12,0,4,8 >RU 

0,12,0,33,716,24,0,12,71,24.0,33,35 

8,24,0,12,71,12,0,4,67,12,0,33,716, 

24.0.12,60,24,0 

430 DATA 33,426,24.0,12.67,12,0.4,7 >NL 

1,12,0,33,851,24,0,12,80.12.0.4,89. 

12,0,33,426,24,0,12,95,12,0,4.89,12 

,0,33.851.24.0,12,80,12.0,4.95.12,0 

,33,284,24.0,12,71,96,0,1.568.24.0, 

1,284,24,0,1,548.24.0 

440 DATA 33,426,24,0.12.71,12,0.4,8 >DQ 

0,12,0.33,851,24,0.12,89,12,0.4,95, 

12,0,33,426,24,0.12,106,24.0 

450 DATA 33,851,24,0,12,106,12.0,4. >VA 

119,12,0,33,426,24,0,12,106,24,0,33 

,851,24,0.12,106,1-2,0,4,119,12.0,33 

,426,24,0,12.106,12,0,4.95,12,0.33, 

851,24,0,12,89.12.0,4,80,12,0 

460 DATA 33,426,24,0,12,71,12,0,4,8 >DT 

0,12,0,33,851,24,0,12,89,12,0,4,95. 

12,0,33,426,24,0,12,106,24.0 

470 DATA 33,851,24,0,12,106.12.0,4, >RR 

89,12,0,33,284,24,0,12,95,12,0.4,10 

6,12,0,33,568,24,0,12,95.12,0,4,119 

,12,0,33,284,24,0,12,142,48,0,1,568 

,24,0 

480 DATA 33,426,24,0,12,71,12,0,4,8 >DV 

0,12,0,33,851,24,0,12,89,12,0,4,95, 

12, 0^33, 426, 24,0,12, 106,24,0 

490 DATA 33,851,24,0,12,106,12,0,4, >VE 

119,12,0,33,426,24,0,12,106,24,0,33 

,851,24,0,12.106,12,0,4,119,12,0,33 

,426,24,0,12,106,12,0,4,95,12,0,33. 

851,24,0,12,89,12,0,4,80.12,0 

500 DATA 33,426,24,0,12,71,12,0,4,8 >DM 

0,12,0,33,651.24,0,12,89,12,0,4,95, 

12,0,33,426,24,0,12,166,24,0 

510 DATA 33,851,24,0,12,106,12,0,4, >RL 

89,12,0,33,284,24,0,12,95,12,0,4,10 



6,12.0,33,568.24.0,12,95,12,0.4.119 

,12,0,33,284,24,0,12,142,46,0,1,568 

.24.0 

520 DATA 33.268.24,0,12,134,24,0,33 : 

.536.24,0,12.134,12,0.4,119,12,0.33 

, 268, 24, 0, 12, 106, 12, 0, 4, 95, 12, 0,33. 

536,24.0,12,89,24.0 

530 DATA 33.358,24,0,12,89,12,0.4,6 

0,12, 0.33, 716, 24, 0,12, 71, 24,0.33.35 

8,24,0,12,71,12,0,4.47,12.0.33.716, 

24.0,12.40,24.0 

540 DATA 33.266,24,0.12.134,24,0,33 ; 

,536,24,0,12,134.12,0,4,119.12.0.33 

,26c, 24,0, 12, 106. 12. 0,4. V j, 12,0, -j-j, 

534,24,0,12,89,48,0,1,478,24,0,33,9 

56,24,0,12,119,24,0,33.478.24.0,12, 

119,48,0,1,956,24,0 

550 DATA 33,268,24,0,12,134,24,0,33 

,536,24,0,12,134,12,0,4,119.12.0.33 

,268,24,0,12.106,12,0,4,95.12.0.33, 

536,24,0,12,89,24.0 

560 DATA 33,358,24,0,12.89,12.0.4.8 : 

0,12,0,33,716,24,0,12,71,24,0,33,35 

8,24,0,12,71,12,0,4,67,12,0,33,716, 

24,0.12,66,24,0 

570 DATA 33,426,24.0.12.67,12,0,4.7 ; 

1.12.0.33,851,24,0,12,80.12.0,4.89, 

12,0.33,426,24,0,12,95,12,0.4.89,12 

,0.33,851,24,0,12,80,12,0.4,95.12.0 

,33,284,24,0,12,71,96,0,1,568,24.0, 

1,284,24,0,1,568,24,0 

580 DATA 33,426,24,6,12,106,12.0,4, : 

95,12,0,4,89,12,0,4,106,12,0,1,851, 

24,0,33,426,24,0.12,71,144,0,1,851, 

24,0,1.426,24,0,1,851,24,6,1,426,24 

,0.1,851,24,6 

590 DATA 33,478.24,0,12,119,12,0,4. , 

106,12,0,4,95, 12,0,4, 119, 12, 0.1. 956 

,24,0,33,478,24,6,12,71,144,0,1.956 

,24,0,1,478,24,0,1,956,24,0,1.478.2 

4,0,1,956,24.0 

600 DATA 33,424,24,0,12,166,12,0,4, ; 

95,12,0,4,89,12,0,4,106,12,0,1,851, 

24,6,33,426,24,6,12,71,144,6,1,851, 

24,0,1,426,24,6,1,851,24,0,1,426.24 

,0,1,851,24,0 

610 DATA 33,478,24,0,12.119,12,6,4, ', 

106,12,0,4,95,12,0,4,119,12,0,1,956 

,24,0,33,478,24,0,12,71,144,0,1,956 

, 24, e, 1,478, 24,0, 1,956,24,0, 1,476,2 

4,6,1,956,24,0 

620 DATA 33,424,24,0,12,71,12,6,4,8 : 

0,12,0,33,851,24,0,12,89,12,0,4,95, 

12,0,33,426,24,0,12,104,24,0 

630 DATA 33,851,24,6,12,106,12,6,4, ; 

89,12,0,33,426,24,0,12,95,12,0,4,80 

,12,0,33,851,24,0,12,71,12,0,4,60,1 

2,0,33,426,24,6,12,53,24,0 

640 DATA 0,0,0,0 j 







E 



u 



Vous êtes un 



fervent 



cruciverbiste ? 
Concoctez vous- 
même vos grilles et 
imaginez des 



définitions 



tortueuses sur 8x8 



carres. 



1* r * option : 
CREER GRILLE 

Avant de jouer sur des grilles, il faut 
les créer. Vous pouvez créer jusqu'à 
30 grilles 8 x 8 par fichier. La saisie de 
la grille est automatique (DEL pour 
revenir en arrière), la touche < 1 > 
sert à entrer les carrés. Pour les 
définitions, respectez la longueur 
maximum simulée par des tirets sinon 
l'affichage de celles-ci sera dcsordon- 



2- option : JOUER 

la grille affichée contiendra les mots 
ou lettres déjà trouvées si vous le 
souhaitez, vous pourrez ainsi 
reprendre votre recherche où vous 
l'aviez laissée. Déplacez l'étoile 
clignotante sur une case vide puis 
appuyez sur <RETURN>. Tapez 
< 1 > pour entrer un mot horizontal 
ou <2> pour un mot vertical. La 
saisie est alors automatique même si 
des lettres ont déjà été trouvées. Les 
lettres justes restent, les mauvaises 
s'effacent. 

Dernière option : 

CHARGER FICHIER 

Cette option se passe de commentai- 
res. 



MOTS CROISES 

•Philippe PERROTTEY 




Ai/Lderrfé tr 



VARIABLES PRINCIPALES 



cl$(31,9,9) 
c2$(31,9,9) 

d$(31,17) 

se 

"g 



: contient toutes les grilles du fichier 

: contient les lettres trouvées par le joueur dans 

chaque grille 
: contient les définitions de chaque grille 
: nombre de cases pleines dans la grille sélectionnée 
: nombre de grilles dans le fichier 
: numéro de grille sélectionnée 



10 '************** >LA 

20 ' H0T5 CROISES >LB 

J0 >(_Q 

4» ' F'h PERROTTEY >LD 

50 ************** )LE 

m DIM cl$(31,9,9),c2*!31,9,9),d»(3 >EZ 

1,17) 

65 DEFINT a-z >PH 

70 ================ >LB 

8« ' MENU PRINCIPAL >LH 

98 '====■=====■====== >LJ 

m MODE 0:INK 1,26: 1NK M:INK 2,1 >LB 
4: BORDER 

110 PRINT CHR* (22i ; CHR* < 1 > ; : TAGiMOV >MZ 
E 132,366,2:PRINT"M0TS CROISES": : TA / 
SOFFiLOCAÏE 5. 3: PRIMT"MOTS CROISES" 



;CHR*(22):CHR»10) 

120 PLOT 112,376, hDRAHR 4l6,0;DRAi» >LF 
R 0,-32:DRA«R -416,0:DRA»R 9,32 
130 n$(l)="J0UER":n$(2)="CREEF; GRIL >LV 
LE":n$(3)="CHARGER FICHIER" 
140 y=10 >tU 

150 FOR i=l TO 3 >VF 

160 LOCATE 10-LEN(n*(il)/2,y:PRINT >LD 
" ";tl*(i! 

170. y=y+5 >HD 

180 NEXT >EE 

190 y=W ;SD 

200 LOCATE 10-LEN(nf(¥ ■-:;:, y:FA ;>LN 
PER 1:PEN 2:PRINT";";nS y :-: >i' '.-: 
PAPER 0-.PEN 1 
210 e*=INKEY»!lF e*="" '«s ::<■ >X« 




_ 



22» IF e*=CHR*(13) THEN (IODE 2:y=y/ >EC 

5-l:ON y GOTO 286, 1078, 1338 

236 IF e»=CHR$<248> IHEN y=y-5:ee=5 >GX 

:IF y<16 THEN y=10:GOTO 268 ELSE 26 

« 

248 IF e$=CHR*(241i THEN y=y+5:ee=- >RN 

5: IF y>20 THEN y=28:60T0 260 ELSE 2 



258 BOTO 218 

260 LOCATE 18-LENln»((y+eei/5-l))/2 
,y+ee:PRINT " ";n*(iy+ee)/5-i)" " 
278 BOTO 280 



>PE 

>VH 

288 '===== >TA 

290 ' JOUER >TB 

308 '== >RD 

310 5C=0:CLS:IF ng=0 THEN NODE 0:LO >6X 
CflTE 3,12:PRINT"PAS DE FICHIER":FOR 

1=1 TO 1008:NEXT:GOTO 108 
320 INPUT"Entrsz numéro grille sur >TS 
laquelle vous voulez jouer ou [0] 5 
i celle-ci est déterminée au h 
asard : ",gn:CLS 

330 IF gn=0 THEN gn=INT(RND*ng)+l ,>BN 
340 IF gn>ng THEN 320 >ND 

358 BOSUB 1750 >QC 

360 GOSUB 1910 >QB 

370 IF sc=64 THEN WHILE INKEY$="":L >6H 
OCATE 25,25:PRINT"VOUS AVEZ FINI CE / 
TTE GRILLE...": FOR t=l TO 158:NEXT: 
LOCATE 1.25:PRINT CHR$(18) jiFQR t=l 

TO 150:NEXT:t€ND:CLS:GOTO 920 

380 LOCATE 38,25;PRINT CHR*(24);"[C ,:>UB 
0PY]";CHR*(24);" pour arrêter" 

390 ' >TC 

406 ' TEST CLAVIER JRE 

410 ' >RF 

426 x=4:y=6 >VF 

430 LOCATE 2,22:PRINT li >YZ 
":LDCATE 2,24:PRINT " 

440 c2*=c2*(gn,K/2-l,y/2-2i:IF c2*= >PL 
"" THEN c2»=" " 

450 e$=INKEY$:IF e*="" THEN LOCATE >QX 
x,y:PRINT"«":FOR i=l TO 150:NEXT;LO 
CATE x,y:PRINT c2»:F0R i=l TO 156:N 
EXT:60T0 458 

466 IF e*=CHR*(224> THEN CLSlBOTO 9 >DY 
26 

470 IF e*=CHR*<13) AND c2»=" " THEN >CH 
538 

488 IF e$=CHR$<243> THEN LOCATE x,y >OH 
:PRINT c2$:x=x+2;IF x>18 THEN x=18 

498 IF e$=CHR*(242! THEN LOCATE x,y >HB 
:PRINT c2*:k=x-2:IF x<4 THEN x=4 
506 IF e$=CHR*(240) THEN LOCATE s, y >HZ 
:PRINT c2*:y=y-2:IF y<6 THEN y=6 



• " ' • il B 



510 IF e»=CHR»(241) THEN LOCATE x,y >QT 
:PRINT c2$;y=y+2:IF y>20 THEN y=26 



520 GOTO 440 



>ZB 



536 LOCATE 2,22:PRINT"1 - Horizonta >XE 

lèsent": LOCATE 2,24:PR1NT"2 - Verti 

calement" 

540 e*=INKEY*:IF et="" THEN 540 >XJ 

558 e=VAL(e») >KE 

560 IF 6=1 THEN LOCATE 2,22:PRINT C >TC 

HR»(24))"1 - Horizontalement";»») 

24);:G0T0 580 

570 IF e=2 THEN LOCATE 2,24:PRINT C >AF 



SERVEUR 
MINITEL 

N'oubliez pas 
36.15 code MHZ 



i-ft' 



La B.A:L. permet un dialogue direct avec 
la rédaction. ^?~^.-*3& 



HR$(24)i"2 - verticale»ent";CHR*(24 
);:S0T0 5B0 ELSE 548 
580 ON e GOTO 590,756 >NF 

59f) ■ _ >TE 

608 ' SAISIE HORIZONTALE >RG 

6ie ' >rh 

626 e=l:xl=x:x2=x >HA 

638 LOCATE x2,y:PRINT CHR*<243):F0R >AL 

i=l TO 158iNEXT:LOCATE x2,y:PRINT" 

":F0R i=l TO 150:NEXT 
640 e*=UPPERt i INKEV*) ; IF e*="" THEN >FF 

630 

656 e* le) =e*: LOCATE x2,y:PRINT e»(e >DX 
) 

666 x2=x2+2:IF c2$(gn,x2/2-l, y/2-2! >F« 
=CHR*(143) OR x2>18 THEN 690 ' 
678 IF c2»(gn,x2/2-l,y/2-2K>"" THE >CQ 
N IF c2»(gn,(x2+2)/2-l,y/2-2)OCHR$ 
1143) OR x2+2<=18 THEN e=e+l:e»ie)= 
c2*(gn,x2/2-l, y/2-2) :sc=sc-l:60TB 6 
60 ELSE 698 

680 e=e+l: BOTO 638 >«C 

698 FOR i=l TO e >YC 

780 IF ci*(qn,sl/2-l,y/2-2K>e*li! >RZ 

THEN LOCATE xl,y:PRtNT" "iGOTO 720 

718 c2*(gn,xl/2-l,y/2-2i=cl*(gn,xl >XP 
/2-1, y/2-2) :sc=sc+l 

726 xl=xl+2 m 

736 NEXT >EF 

740 IF sc=64 THEN 1816 ELSE 398 >«Z 



758 ' 

760 ' SAISIE VERTICALE 

770 ■ 

786 e=l:yl=y:y2=y 

796 LOCATE ;<,y2:PRINT CHRt(241):F0R 

i=l TO 158: NEXT: LOCATE x,y2:FRINT" 

"iFOR i=l TO 150:NEXT 
868 e*=UPPER*UNKEY$):IF e»="" THEN 

796 

816 e$(e!=e»:LOCATE x,y2:PRiNT e$!e 
) 

828 y2=y2+2:IF c2t(gn,x/2-l,y2/2-2) 
=CHR*(143i OR y2>20 THEN 850 
830 IF c2*ign,x/2-l,y2/2-2K>" THE 
» IF c2*lgn,x/2-l,(y2+2)/2-2)OCHR* 
(143) OR y2+2<=20 THEN e=e+l:e$(e!= 
c2* (gn, x/2-i , y2/2-2) : sc=sc-l :60TO 8 
26 ELSE 858 
848 e=e+l:G0T0 798 
856 FOR i=l TO e 
860 IF cl*(gn,x/2-l,yl/2-2)Oe«(i) 

THEN LOCATE x,yl:PRINT" "iGOTO 886 

B78 c2*(gn,x/2-l,yl/2-2)=ci*(gn,x/ 

2-l,yl/2-2):sc=sc+l 

888 yl=yl+2 

898 NEXT 

900 IF sc=64 THEN 1016 ELSE 398 

916 ' 

926 ' ARRET DU JEU 

936 ' 

946 PRINT"Voulez-vous .jouer sur une 
autre grille iO/N) ?" 
958 e*=UPPER*(INKEY*):IF e$0"O" AN 
D e»<>"N" THEN 950 
960 IF e$="0" THEN 280 
976 CLS:PRINT"Voulez-vous sauver vo 
s mots trouves dans toutes les gril 
les (O/N) ?" 

988 e*=UPPERt(INKEY*i:IF e*O"0" AN 
D e$<>"N" THEN 988 
998 IF e*="N" THEN 188 
1686 BOTO 1548 

1818 ' 

1028 ' GRILLE FINIE 

1836 : 

1035 LOCATE 2,22<PRINT* 

":LCCATE 2,24:PRINT " 



>TC 

:>TD 
>TE 

>MM 
•AR 



>FL 
>DV 
>FD 
>CC 



■«H 
>YA 
>RP.< 



M 
>FC 
>NX 
>TA 

:TB 
>TC 

,VB 

>VQ 

>NN 

■PS 



>NF 
>LJ 
>XE 
•>XF 
>XG 
>AV 



1040 NH1LE INKEY*="": LOCATE 28,25:P >XB 
RINT"BRAVO ! ' VOUS AVEZ FINI CETTE 
BRILLE "":F0R t=l TO 158:NEXT:L0CA 
TE 1,25:PRINT CHRtU8)::F0R t»i TO 
150: NEXT: WENDiCLS: GOTO 920 
1050 ============= >XJ 

1066 ' CREER GRILLE >XK 

1870 '========== >YA 

10B8 IF ng>36 THEN HODE 6:L0CATE 4, >JH , 



_.„_ 



• ■ 



■ SfflWaR 



wmmmMmm - - ' 



12:PRINT"FICHIER PLEIN":FOR i=l TO 
1080:NEXT::6ÛTO 100 ELSE LIS 
1090 gn=ng:gn=gn+l >NP 

1H» 60SUB 1758 m 

1110 LOCATE 38,25:PRINT CHR*!24>;" >QK 
ENTREZ VOTRE GRILLE "jCHR»(24)| 
1126 x=4:y=6 >EL 

1138 LOCATE x,y:PRINT CHR$(243):F0R >ZK 
i=l TO 150:NEXTllOCATE x,y;PRINT" 
":F0R i=l TO StBiNEXT 
1148 e$=UPPER»<INKEY*):IF et*"" THE /SB 
N 113» 

1158 IF ASC(e*)=127 THEN LOCATE x,y >NY 
iPRINT" ":x=x-2:IF s'A THEN x=18:y= 
y-2: IF y<6 THEN y=6:60TO 113» ELSE 
1138 ELSE 1138 
1168 IF ASC(e$!=49 THEN e*=CHR$!143 >B8 

1178 cl*(gn,x/2-l,y/2-2)=e$:LDCATE M 

ï,y;PRINT e$ 

1188 x=x+2:IF x=28 THEN s=4:y=y+2:I >LB 

F y=22 THEN LOCATE 1,25:PRINT CHR$( 

18);:SOT0 1288 

1198 BOTO 1138 >HD 

1288 LOCATE 25,4:PRINT CHR$(24);"i >NB 

- Horiîontalraant'iLOCflTE 25,14:PRI 

NT"2 - Verticalement" 

1218 LOCATE 28,25:PRINT" ENTREZ LES >HL 

DEFINITIONS ";CHR$(24i; ' 
1228 y=4 >XA 

1238 FOR 1=1 TO 16 >LG 

1248 y=y+lsIF y=13 THEN y=15 >WA 
1258 LOCATE 25, y: IF i<9 THEN PRINT >CL 

RISHT*(STR*ll+180),2); ELSE PRINT 
RI6HT*(STR»U-8+lW),2)i 
1268 PRINT H .";STRINS$(58,"-"I >XY 
1278 LOCATE 28,y:INPUT",d*(gn,i) >BE 



1288 NEXT i 

1298 IF ng=38 THEN 1328 ELSE CLS:RR 

INT"Voulez-vous créer une autre gri 

lie (O/Nl ?" 

1388 eJ=UPPER*(INKEY*):lF e$O"0" A 

ND e*<>"N" THEN 1388 

1318 IF e*="0" THEN 1888 

1328 BOTO 1548 

1338 ==================== 

1348 ' CHAR6ER UN FICHIER 
1350 =================== 

1368 CLS: INPUT"No« du fichier a cha 
ryer : ",nf$ 
1378 OPENIN nf* 
1388 INPUT#9,ng 
1398 FOR i=l TO ng 
1488 FOR y=l TO 8 
1418 FOR x=! TO 8 
1428 INFUT#9,cl*i],x,y) 
1438 INPUT»9,c2*(l,x,yi 
1448 NEXT K 
145» NEXT y 
1468 NEXT i 
1478 FOR 1=1 TO ng 
1488 FOR d=l TO 16 
■1498 INPUT#9,d«il,d) 
1588 NEXT d 
1518 NEXT i 
1528 CLOSEIN 
1538 BOTO 188 
1540 ================ 

1558 ' SAUVER FICHIER 
1568 '================ 

1578 CLS:INPUT"No« du fichier a sau 
ver : ",nfî 
1588 OPENOUT nf* 
1598 «ITE#9,ng 



k3JL • •• 



... VOUS ETIEZ ABONNE A CPC 

VOUS AURIEZ REÇU CE NUMERO 

GRATUITEMENT ! 



BON DE COMMANDE PAGE 30 



1688 FOR 1=1 TO ng 

1618 FOR y=l TO B 

1628 FOR s=l TO B 

1638 l#ITE#9,ci*u,;i,y; 

1648 «RITE#9,c2*il,x,yl 

1658 NEXT x 

1668 NEXT y 

1678 NEXT l 

1688 FOR i=l TO ng 

1698 FOR d=! TO 16 

1708 »RITE#9,d»(l,d! 

1718 NEXT d 

1728 NEXT i 

1738 CLOSEOUT 

1748 BOTO 188 

1750 ' 

1768 ' TRACABE GRILLE 

1770 ' 

1788 LOCATE 6,2iPRINT"6RILLE N.":RI 

GHT*iSTR*!l08+qn!,2i 

1798 e=8:F0R i=3 TO 17 STEP 2:e=e+l 

iLOCATE i,4:PRINT e:NEXT 

1888 e=8:F0R 1=6 TO 20 STEP 2:e=e+l 

iLOCATE l.i:PRINT e:NEXT 

1810 FOR 1=20 TO 148 STEP 16:H0VE i 

,328,1:DRA* 8, -256: NEXT 

1820 FOR 1=328 TO 72 STEP -32:nWE 

20,i:i3RAWR 128,0:NEXT 

1838 IF gn>ng THEN ng=ng+l:GOTO 198 



1848 FOR y=l TO 8 

1B50 FOR x=l TO 8 

1860 IF cl»(5n,x,y)=CHR»(143i THE 

N LOCATE x*2+2,y*2+4:PRINT CHR*(143 

);c2»(gn,;<,y)=CHR*!143i 

1870 IF c2*(gn,K,yK>"" THEN LDCA 

TE »2+2,y«2+4:PRINT c2*(gn,x,y):5c 

=5C+1 

1880 NEXT x 
1890 NEXT y 
1980 RETURN 
1910 ' 

1920 ' AFFICHAGE DEFINITIONS 
1930 ' 

1948 y=4 

1958 LOCATE 25,4:PR1NT CHR*l24):"Ho 
rizontalement" 

1968 LOCATE 25,14:PRINT"Verticale»e 
nt";CHR*(24); 
1978 FOR 1=1 TO 16 
i960 y=y+l 

1990 LOCATE 25, y; IF i<9 THEN PRINT 
RIGHT»(STR»ii+108l,2); ELSE PRINT 
RI6HT$(STR*(i-8tl08),21i 
2000 PRINT", ";d*ign,il 
2010 IF y=12 THEN y=14 
2820 NEXT' 
2030 RETURN 



>LH 
>EJ 
>FH 
>TS 
>TJ 
>YC 
>XK 

m 

>LR 
>LY 
)PP 
>VE 
>VF 
>ZB 
>EJ 
>YF 
>YG 
>YH 
>CA 

>DL 

>DW 

>CD 

>ZD 

>DZ 

>EE 
>FD 
>AJ 



>YC 

>XK 
>FD 
>YD 

>YE 
>YF 
>XK 

:>AL 



>LU 
>PG 
>CY 



>PV 
>KF 
Ci» 



u 



R 






m 



RELIEFS 
MATHEMATIQUES 



RELIEFS MATHEMATIQUES est un 
programme graphique permettant de créer 
des images de surfaces générées à partir de 
fonctions mathématiques du type z=f(x,y). 
En fait, "RELIEFS MATHEMATIQUES" 
ambitionne de visualiser lesdites surfaces 
selon l'aspect qu'elles auraient si on les 
matérialisait. Cela implique que leur 
représentation tienne compte de la réalité de 
la perspective (le programme crée un effet 
de perspective à trois points de fuite) mais 
également de la quantité de lumière que 
chaque élément de la surface renvoie à l'œil 
de l'observateur (selon leur position par 
rapport à la source lumineuse qui les éclaire, 
ces éléments sont plus ou moins clairs, d'où 
l'effet de relief). De plus, "RELIEFS 
MATHEMATIQUES" offre la possibilité de 
visualiser les fonctions à tracer sous 
n'importe quel angle. 





• Thierry 
CHILLAN 



»- Y 



Figure 1 



PRINCIPE 

DE FONCTIONNEMENT 

Une fois entrés les données et paramè- 
tres qu'on lui a fournis (nous les ver- 
rons plus loin) le programme com- 
mence par découper le domaine 
d'étude en triangles équilatéraux ; il 
s'arrange en tout cas pour qu'un 
pavage de triangles équilatéraux 
recouvre la totalité de ce domaine 
(fig. !)• 

Les sommets de ces triangles ont cha- 
cun une abscisse X et une ordonnée Y 
à partir'desquelles sont calculées les 
coordonnées Z d'altitude (fig. 2). 



. L Z 



Figure 2 



source 

lumineuse 



* 



triangle B 



Cette troisième coordonnée, pour cha- 
cun des sommets, permet de définir un 
nouveau triangle B dont les sommets 
appartiennent à la surface à tracer. Le 
triangle B est en fait la projection 
approximative du triangle A sur la 
surface (voir schéma précédent) dont 
nous considérons qu'il constitue une 
facette. On définit alors un vecteur Vn 
orthogonal au plan du triangle B et 
dirigé dans le sens des Z croissants et 
urt vecteur Vecl reliant la source lumi- 
neuse éclairant la surface au centre de 
la facette. En fonction de l'angle que 
forment ces deux vecteurs, le pro- 
gramme détermine quelle couleur il 
devra affecter à cette facette, sachant 
que plus l'angle est grand, plus cette 
couleur est claire. 

Les facettes sont ensuite affichées à 
l'écran en partant de celles qui sont le 
plus éloignées de l'observateur vers 
celles qui sont les plus proches ; c'est 
l'algorithme du peintre. 

MODE D'EMPLOI 

Tout d'abord exprimer la fonction à 
tracer dans le DEF FN de la ligne 110. 
Placer son nom dans le SAVE de la 
ligne 990, juste après le point d'excla- 
mation, en vue d'une sauvegarde de 
l'image. 

Le programme est alors prêt à fonc- 
tionner : le lancer par RUN puis 
répondre aux indications de l'écran. 

— Xmin, Xmax, Ymin, Ymax sont 
les bornes inférieures et supérieures du 
domaine d'étude, respectivement par 
rapport aux axes X et Y. 

— Degré de maillage : ce paramètre 
sert à définir la finesse du tracé : plus 
il est grand, plus la surface à afficher 
est réaliste. 




— Angles de vision vertical et hori- 
zontal, distance de l'observateur : ces 
paramètres correspondent aux coor- 
données sphériques de la position de 
l'observateur (fig. 3). 



— Pour l'option suivante, sélection- 
nez le choix 2 quand la surface que 
vous avez à tracer présente des asymp- 
totes, sinon toujours choix 1. 

— Angles vertical, horizontal d'éclai- 
rage et distance de la source lumi- 
neuse : coordonnées sphériques de la 
position de la source lumineuse éclai- 
rant la surface. 

— Sélection d'un mode d'affichage. 
Choix 1 : ce choix est réservé aux 
écrans monochromes. Le programme 
travaille en mode et l'effet de relief 
sur les surfaces est réalisé grâce à l'uti- 
lisation des 16 nuances de vert dispo- 
nibles à l'écran. Si cette option est 
sélectionnée, le programme demande 
de choisir le degré de luminosité de la 
source éclairante. Le degré 5 donne en 
général des images bien contrastées. 
Choix 2 : ce choix s'adresse à tous les 
types d'écran. Les nuances de couleur 
sont réalisées par ' 'tramage' ' . Si cette 
option est sélectionnée, la possibilité 
est alors offerte d'avoir un affichage 
des facettes avec leur contour. 
L'ordinateur annonce par un 




-4- 



"BEEP" que le tracé est terminé. 
Vous avez alors la possibilité de sau- 
vegarder votre image en pressant la 
touche "ENTER", de voir le temps de 
calcul s'afficher en pressant la touche 
"T". Si la fonction visualisée présente 
des asymptotes et que vous la jugez 
mal centrée, vous pouvez demander 
un nouveau tracé où l'image sera 
translatée vers le haut ou vers le bas 
d'un certain nombre de pixels ; pres- 
sez pour cela la touche d'espace et 
entrez une valeur positive (translation 
vers le haut) ou négative (translation 
vers le bas). 

Les images sauvegardées en mode 
sont récupérées par les instructions 
for I = 1 TO 15 : INK 1,1 + 5 : NEXT 
1 : INKO.O BORDER : MODE 
LOAD"!" 

Celles en mode 2 par : MODE 2 
LOAD"!" 

NOTER QUE : 

— Certains degrés de maillage affec- 
tés à certaines fonctions entraînent à 
certains moments des anomalies de 
fonctionnement du programme. Dans 
ce cas arrêter le programme et recom- 
mencer en changeant le degré de mail- 
lage d'une ou deux unités. 

— Pour que "RELIEFS MATHE- 
MATIQUES" fonctionne sur CPC 
664 et CPC 6128 il faut enlever le 
SPEEP WRITE 1 de la ligne 990. Il 
faut également modifier les lignes 
suivantes : 

90 MEMORY &9FFF 
960 IF Mo = 2 THEN CALL 
&A040.15 

2060 CALL &A040, Trame 
2330 CALL &A040.15 



10 REM ************************* 

28 REM * * 

» REM * RELIEFS NATHErWiaUES * 

46 REM * » 

50 REM * car T.Ehillan net. 87 * 

68 REM * * 

78 REM ************************* 

88 MODE 2 : INK 1.24 

TO MEMORY SABFF 

le» ON ERROR GOTO 2698 

116 DEF FN f<X,Y>= 

128 INPUT'Xniin » ",X(iin 

136 iNPUT'Xnax = ",X»ax 

146 INPUT'Vnun = ",Y«m 

158 INPuT"Y»ax = "Jinax 

168 INPUFDegre de «alliage 

1 

176 PRINT 

186 INPUT'Angle de vision vertical 



.Mai 



2510 POKE &BDE9.&0 : POKE , 

&BDEA.&A0 

2520 AD = &A000 

2535 POKE &A017.&A0 
2540 AD = &A040 : n = 
2555 POKE &A059.&A0 
2580 CALL &A040.15 

La ligne 2536 diffère selon les 
modèles : 

2536 POKE &A025.&71 pour les CPC 
6128 

2536 POKE &A025.&6D pour les 

CPC 664 

Quelques exemples : 

fonction 5 * COS(COS(SQR(X»X + 

Y*Y))) 

paramètres dans leur ordre respectif : 

-10; 10; -10; 10; 80; 30; 30; 40; 40; 1 ; 

60; 120; 10; 1; 5 

temps de calcul : 3 h 32 min 56 s 

5 * COS (COS(SQR(X»X + Y*Y))) 
paramètres : -10; 10; -10; 10; 50; 90; 
0; 40; 1; 60; 120; 10; 1; 5 
temps de calcul ; 1 h 20 min 45 s 

3 * SIN(X)12 * SIN(Y) 
paramètres : -3,14; 3,14; -3,14; 3,14; 
50; 25; 320; 15; 1; 40; 20; 100; 1; 5 
temps de calcul : 1 h 28 min 19 s 

10 « SIN (PI/2 * SQR(X*X + 
Y*Y))/SQR(X*X + Y*Y) 
paramètres : -10; 10; -10; 10; 50; 30; 
25; 40; 1; 30; 60; 100; 1; 5 
temps de calcul : 1 h 29 min 28 s 

10 » SIN (PI/2 * SQR(X»X + 
Y»Y))/SQR(X*X + Y»Y) 
paramètres : -10; 10; -10; 10; 50; 30; 
25; 40; 1; 30; 60; 100; 2; N 
temps de calcul : 1 h 29 min 38 s 

. Thêta <-¥6<Theta<96) : ", Thêta 
196 INPUT'Angle de vision horizonta >VM 
1 Phi (8<Phi<3681 : ".Phi 
286 INPUT'Distance de l 'observateur >0M 
a l'origine : %Ray 

216 PRINT >NF 

226 DE6 : ct=C0S (Thêta) : st=SIN!Th ,'fl 
eta) : cp=C0S(Phi) ! sp=SIN(Phii 
236 Pasy-!Y«ax-Y»in)/r1ail : Pasx=Pa >Ttl 
sy*SQR(3i/2 

246 Xnaxav=X»ax >MQ 

256 Xmax=X«in+(INT<u«iax-X«in!/Pasx >RZ 
)tll*Pasx 

266 IF Xnax=X«axav+l THEN Xi»ax=Xuax >HJ 
av 
270 PRINPSelectionnez une option : >PC 

286 PRINT" 1. Affichage de la tota >CN 
lite de la surface calculée" 
' 298 PRINT" 2. Affichage de la surf >EB 



ace tronquée" 

366 INPUT">".opt .'LE 

316 PRINT >N0 

328 INPUT'Angle vertical û eclairag l'EM 

e Alpha i-98<Alpha<98) : ", Alpha 

338 INPUT'Angle horizontal d éclair M. 

âge Beta (8<Beta<366) : ",Beta 

346 INPUT'Distance de la source lu» >XB 

ineuse a l'origine : ",R 

358 PRINT >PÂ 

366 Xecl=R*C0S(fllphal*COS(Beta> '>BM 

378 Yecl=R*CÛSl«lpha)*5IN(Beta) ;>BV 

386 Zecl=R*SIN(Alphal M 

396 RAD : ' si nécessaire \>AC 

466 PRINT"Selectipnnez un iode d'af >BC 

fichage :" 

418 PRINT" 1. Mode (écrans fflonoc >FM 

hromes uniquement? : mode FILL 1 ' 

420 PRINT" 2. Mode 2 : «oae TRAMES >BB 

438 INPUT">",no >HH 

440 PRINT >PA 

456 IF Mo=i THEN INPUT"Degre de lui >KD 
inœite (6-il! i ".Lusi 

468 IF Mo=2 THEN INPUPDesirez-vous .'VU 
le contour des facettes ? CD/M) : 
",Bord$ 

478 DIH YllMail+l,3),Y2(Mail+2,3) >AT 

486 i=6 >PC 

496 FOR Y=Y(nin TO Y«ax STEP Pasy >BC 

566 i=i+l >BK 

516 Yl(i,2)=Y >LB 

526 NEXT Y >QB 

536 i=8 >NJ 

546 FOR Y=Y'min-Pasy/2 TO Ymax+Pasy/ >RC 
2 STEP Pasy 

550 i=i*i >EE 

566 Y2(i,21=Y >LH 

576 NEXT Y >QS 

588 IF Mo=l THEN Fang=PI/l4 ELSE Fa >v7 
ng=PI/15 : Coul=l : G0SUB 2510 : 60 
T0 660 

590 INK 6,0 : BORDER : PAPER >WC 

600 FOR i=2 TO 15 >CE 

618 INK i,Luu+i >FG. 

628 NEXT i >N6 

636 REM ******************** >TR 

646 REM Sous-progra«me de calcul d >DV 
es extrema et centrage 

656 REM ******************** >TU 

668 Tpav=TIr€ >ï& 

676 XEim=2000 : YEmin=XE«in >XM 

680 XEmax=-2088 : YE«ax=XE»ax >YP 

690 PX=(X»ax-X«lini : PY=tï«iax-Yflun) >LM 
tpasy 

700 IF opt=l THEN FX=PX/16 : PY=F'Y; >EK 
16 

' 710 FOR X=X»in TO X«iax STEP PX >YP 



r 11 i 



"■"" " "■ 'istîiiÉE^SËM 



...,.,-. 



726 FOR Y=Ynin-Fasv/2 TO Ymk+P»s >PL 

y/2 STEP PY 

7313 BOSUB 2428 

746 XE«in=MIN(XE«in,XE) : XEiiax 

=MAX!XEna,<<,XE) 

75» YEimn=MIN(YE»in,YE! : YEliax 

=MAX(YEi»x,YE) 

768 NEXT Y 

778 NEXT X 

788 Ecrx=666 : Ecry=366 

798 Edu=£crx/!XE«iax-XE«in)/l,87 

888 Echy=Ecrv/ (YEaan-YEiin) 

818 IF opt=l THEN Echs=niN(Ech;<.Ech 

y) 

828 Echy=Echx : Echx=Echx*1.67 >YY 
638 Xcent=(648-Echx*txEuax+xE!iiin))/ >FB 

848 Ycent=i468-Echv»(YE«ax+YE»in!)/ >FF 



858 REM ************************ >WK 

868 REM Affichage des Facettes >ZB 

878 REM ************************ >WM 

886 DIK vH3),v2(3),Vn(3),V8cl(3i,P >BH 

t(3,3!,XE(3),YE(3).Bary(3) 

896 Flag=l : Ist=8 >MQ 

988 IF «0=1 THEN INK ULiM+1 ; MODE >MA 

6 ELSE MODE 2 

918 IF Phi>6 AND Phi<=98 THEN Xdeb= >VT 
Xsin : Xfin=Xiax : BOSUB 1358 : BOT 
956 

928 IF Phi>96 AND Phi<=188 THEN Cas >CD 
=1 : Xdeb=Xaax : Xt'in=Xjain ; Pasx=- 
Pasx ; BOSUB 1358 : BOTO 956 
936 IF Phi>186 AND PhK=276 THEN Xd >TX 
eb=Xmax : X-fin=Xmin i Pasx=-F'asx : 
BOSUB 1838 : BOTO 956 
948 Cas=2 : Xdeb=X«in ; Xfin=X«ax : 

BOSUB 1836 
958 PRINT CHR*(7) 
968 IF Mo=2 THEN CflLL &A946.15 
976 Te«P5=!TIME-Tpav)/366 : Heu=Te« 
ps\3686 : Minu=(Teiips\68) MOD 68 : 
Sec=Te»ps MOD 68 

986 A*-INKEY« >PA 

996 IF A$=CHR$<13) THEN PRINT CHR*i >XE 
71 : SPEED WRITE 1 ; SAVE"!%b,K86 
6, 16384 . 

1688 IF A*=" " AND opt=2 THEN INPUT >LT 
"Translation ! ",Deca : Ycent=Ycent 
tDeca : Tpav=TIME : BOTO 898 
1818 IF A*="t" OR A*="T" THEN LQCAT >ZD 
E 6,1 : PRINT Minus "lin "sSecs's" ; 

IF Heu<>6 THEN LOCATE 1,1 : PRINT 
Heu s "h* 

1626 GOTO 986 >FF 

1638 FOR X=Xdeb TO X+"in STEP Pasx >BH 
1848 BOSUB 1768 >YD 

1856 IF Tst=8 THEN 1326 >0T, 



T1666 IF Flag=l THEN 1288 
1676 FOR i=l TO Hail+1 
1688 FOR ,i=l TQ 3 
1898 IF Cas=2 THEN vl(.j!=Y2(i 
,j)-Yl(i,j) ELSE v2(j)=Y2(i,j)-Ylfi 

,i) 

1166 IF iOl THEN Pt,!l,j)=Yl< 

1-1,1) : Ft<2,j)=Ylii,j) s Pt(3,jï= 

Y2ii,ji 

1118 NEXT j 

1126 IF iOl THEN BOSUB 1898 

1136 FOR j=l TO 3 

1146 IF Cas=2 THEN v2(j)=Y2<i 

*l,j)-YHi,j) ELSE vl<j)=Y2U+l,ji- 

YKiJÏ 

1156 Pt(l,.ii=Y2(i,l! 

)=Y2(i+l,j) s Pt(3,j)=Ylii,jî 

1166 NEXT j 

1178 BOSUB 1896 

1188 NEXT i 

1198 BOTO 1328 

1266 FOR i=l TO Nail+1 

1216 FOR j=l TO 3 

1226 IF Cas=2 THEN v2(j!=Yiil 

,j)-Y2(ï,D ELSE vl(j)=Yl(i,j)-Y2(i 

,JI 

IF iOl THEN Pt!l,j!=Yl 
Pt(2,j!=Yl!i,.j) s Pt(3,j) 



Ft(2,i >DL 
) 

>XE 
)BF 
>HF 
>PA 

>PB 
■FB 
F» 



1238 

II-l,j) : 
=Y2(»,j) 

1246 

1258 
1266 
1276 



NEXT i 

IF iOl THEN 60SUB 1896 
FOR j»l TO 3 
IF Cas=2 THEN vl(j)=Ylfl 
,j!-Y2<i+l,.i) ELSE v2(jl=Yl(i,j)-Y2 

(i+l,j) 

1288 Pt(l,i)=Y2(i,j! : Pt(2,j 

i=Y2(i+i,j> s Pt(3,ji=Yl(i,j) 

1296 NEXT j 

1368 BOSUB 1B98 

1316 NEXT i 

1326 Flag=-Flag 

1338 NEXT X 

1348 RETURN 

1356 FOR X=Xdeb TO Xfin STEP Pasx 

1366 GOSUB (788 

1378 IF Tst=6 THEN 1648 

1386 IF Flag-1 THEN 1528 

1396 FOR i=Mail+l TO 1 STEP -1 

1486 FOR j=l TO 3 

1418 IF Cas=l THEN vl(j)=Y2(i 

+i,j)-Yl(i,l> ELSE v2(j)=Y2(i+l,j>- 

YKi.i) 

1428 IF i<> Hail+1 THEN PtU, 

i)=Yl(i+l,i) : Pt(2,ji=Ylii,j) : Pt 

(3,j)=Y2ti+l,j) 

1436 NEXT j 

1446 IF iOMail+1 THEN BOSUB 18 

98 



1458 FOR j=l TO 3 

1466 IF Cas=l THEN v2(j)=Y2(i 

,1)-Yl(i,j) ELSE vl(j)=Y2(i,j!-Ylil 

1478 Pt(l,,ii=Y2(i+l,ji 

,j)=Y2(i,j) s Pt(3,j>=Yl(iJS 

i486 NEXT i 

1496 BOSUB 1898 

1566 NEXT i 

1518 60T0 1646 

1526 FOR i=Mail+l TO 1 STEP 

1536 FOR j=l TO 3 

1546 IF Cas=l THEN v2< jS=Yl(i 

,j)-Y2(i+l,D ELSE vlU)=Yl(j, j)-Y2 

li+l, J) 

1558 IF iOMail+1 THEN Ptll.j 

)=Yl(i+l,i) : Ptt2,j)=Yl(i,j) : Pti 

3,j)=Y2(i+l,li 



>FH 

;RB 



Pti2 >DN 

>XK 
>CA 
>WB 
>PB 
-1 >WC 
>FB 
>XF 



1566 


NEXT j >XJ 


1578 


IF iOMail+1 THEN BOSUB 18 >AF 


98 




15B6 


FOR .1=1 TO 3 >BB 


1598 


IF Cas=i THEN vl',,ii=Yl(i >RF 



,j!-Y2fi,J) ELSE v2iji=Yl(i,j)-Y2ti 

,.i) 

1666 Pt(l,j)«Y2ti+l,j) : Ptiï >DB 

,j)=Y2(i,jl : Pti3,ji=Ylii,ji 

1616 NEXT J >XE 

1628 BOSUB 1898 >BF 

1636 NEXT i >«F 

1648 Flag=-Flag >LJ 

1658 NEXT X >XC 

1666 RETURN >FG 

1676 REM ************************** >QD 

******************* 

1686 REM Sous-programme de rangeme >AE 

nt des coordonnées 

1696 REM ************************** >QF 

******************* 



1796 IF Flag=-1 THEN 1786 


>RX 


1716 FOR i=l TO Mail+1 


>PC 


1726 Yl(i,l)=X 


>TE 


1738 IF Trans=l THEN Yl(i,2)=Y 


>YA 


1746 Yl(i,3)=FN f(Yl(i,l),Yl!i,2) 


>AE 


) 

1756 IF Trans=l THEN BOSUB 2636 


>ZD 


1766 NEXT i 


>VK 


1776 BOTO 1856 


>N8 


1788 FOR 1=1 TO Mai 1+2 


>PL 


1796 Y2(i,l)=X 


>UC 


1B68 IF Trans=l THEN Y2ii,2)=Y 


>YZ 


1818 Y2(i,3)=FN f(Y2(i,l),Y2(i,2) 


,>AF 


) 

1828 IF Trans=l THEN BOSUB 2638 


;>ZB 


1836 NEXT i 


>VH 


1846 Tst=l 


>ffi 


1856 RETURN 


;>fh 


1866 REM ************************** 


>YE 



--12. 



■■K 

************************** 

1670 REM Sous-programme de calcul : 

des couleurs et affichage 

188© REM ************************** 

************************** 

189© FOR j=l TO 3 

1900 Bary(j)=!Pt(l,j>+Pt(2,))+Pti 

3,j)l/3 

191* NEXT i 

1920 Vnii)=vH2)*v2i3)-vli3)*v2t2i 

1930 Vn(2i=vl(3)*v2(l)-ïlil)*v2(3) 

1910 Vni3)=vl(l)*v2(2!-vii2)*v'2(li 

1950 VeciU!=Bary(ti-Xecl 

196» Vecli2)=8ary(2!-Yecl 

1970 Vecl(3!=Bary(3)-Zecl 

196» Prosc=Vn(l)*VeclUi+Vn(2)*Vecl 

(2!+Vn(3!«Vœl(3l 

1990 VrFSflR(Vn<D"2+Vn(2P2+Vn(3>"2 

) 

2000 Vecl=SQR(VeclU!"'2+Vecl(2)'2+V 

ecl(3)"2> 

2010 Cosang=Prosc/(Vn*Vecu 

2020 ang=ATN(SgR(l-Cosang"2)/Cosang 

) 

2030 IF ang<0 THEN ang=ang+PI 

2040 IF lto=l THEN Coul=INT(ang/Fang 

+1.5) : BOTO 2070 

2050 Trame=INT(ang/Fang+0.5) 

2060 CALL &A940, Trame 

2070 X»eii=X 

2080 FOR j=l TO 3 

2098 X=Pt< j,i) : Wii,2i : Z=Pt 

(j,3) 

2100 BOSUB 2430 

2110 XE(,i)=XE*Echx+Xcent : VE i j ) = 

YE*Echy+Ycent 

2120 IF YE(j)>2000 THEN YE(j! 



200 



2130 IF YE(j><-2000 THEN YE!j)=-2 

000 

2140 IF Z>0 AND YE(j)=-2000 THEN 

YE(j!=2000 

2150 NEXT j 

2160 X=Xiem 

2170 IF YE(2)>YE(1! AND YE(2)>YE(3! 

THEN exx=XE(ti : exy»ÏE(l) : XEUi 
=XE(2) ; YEU)=YE(2) : XE(2)=exx : 
YE(2!=exy : GOTO 2190 
2180 IF YE(3)>YE(li AND YE(3)>YE(2) 

THEN exx=XEUI : exy=YEU> : XEfli 
=XE(3) : YE(1)=YE(3) : XE(3)=exx : 
YE(3)=exy 

2190 IF YE(3)>YE(2) THEN exx=XE(2) 
i exy=YE(2! : XEi2)=XE(3) : YE(2)=Y 
E(3) : XE!3>=exx ; YE(3)=exy 
2200 Nxl=XEil!-XEi2) i Nyi=ROUNB!YE : 
(l)-YE(2))+l : Stpl=Nxl/Nyl 
2210 Nx2=XEU)-XE(3! : Ny2=ROUND(YE : 



%■.} 


PS^^^t 


^ZïS&T 




%&>*^ 




■J 


' (1)-YE<3))+1 


: Stp2=Nx2/Ny2 


i 


2220 Nx3=XE(2)-XE(3) : Ny3=R0UND(YE 


>HB 




12)-YEi3))+l : Stp34lx3/Ny3 




;YS 


2230 Cpt2=l 


>tœ 




2240 FOR Cptl»! TO Nyl 


:qe 


>CK 


2250 MOVE XE(l)-Cptl*Stpl,YE(l!-C 


>DU 


>JK 


ptl : DRAN XE(l)-Cpt2*Stp2,YE(l)-Cp 
tl.Coul 




>VH 


2260 Cpt2=Cpt2+l 


>LB 


:>AA 


2270 NEXT Cptl 


>XC 


>AA 


2280 FOR Cptl-2 TO Ny3 


>q« 


jAA 


2290 MOVE XE(2)-CptHStp3,YE(21-C 


;>dd 


>UB 


Ptl : DRAM XE(l!-Cpt2*Stp2,YE(2)-Cp 




>UF 


tl.Coul 




>ffi 


2300 Cpt2=Cpt2+l 


>Lti 


>YW 


2310 NEXT Cptl 


>m 




2320 IF BordtOV AND Bord*<>"0" T 


>JM 


>FE 


HEN 2380 






2330 CALL S,A940,15 


>LA- 


;>PE 


2340 MOVE XE(1),YE(1) 


>PB 




2350 DRAW XE(2i,YE(2l 


>PV 


>XD 


2360 DRAW XE(3),YE(3) 


>PY 


)6R 


2370 DRAW XElli.YE(l) 


>PV 




2380 RETURN 


>FG 


>XT 


2390 REM ************************** 


>YD 


>VE 


************************** 






2400 REM Sous-programme de calcul 


>YK 


>xx. 


des coordonnées a l'écran 




>PN; 


2410 REM ************************** 


m 


;DC 


M************************ 




>CB 


2420 Z=FN f(X,Y) 


>HC 


>E0 


2430 d=X*cp*ct+Y*sp*ct+Z*st-Ray 


>BY 




2440 XE=(X*sp-Y*cp)/d 


>0N 


>ÏC 


2450 YE=(X*cp*st+Y*sp*st-Z*ct)/d 


>CB 


>TJ 


2460 IF Trans=l THEN BOSUB 2630 


>YN 




2470 RETURN 


>F6 


>AC 


2480 REM ********************** 


>vu 




2490 REM Génération de trames 


>YH 


>rx 


2500 REM ********************** 


>VL 




2510 POKE WDE9,ic0:POKE &BDEA.&A9 


;AB 


>JB 


\2520 AD=SiA900 


,>EH 




2530 READ A$:A=VAL('*'*A*!:POKE AB+ 


>GD 


>VE 


N,A:N=N+1:IF AOiC THEN 2530 




>DC 


'2540 AD=M940:N=0 


>LE 


>VX 


2550 READ A$:A=VAL<"&"+A*):POKE AD+ 
N,A:N=N+1:IF A0M)9 THEN 255» 


>HD 




2560 flD=4AAW:FOR N=0 TO 15: FOR 1=0 


>EP 




TO 7 




>CF 


2570 READ A:POK£ AD+N*B+I,A:NEXT I, 

H 

2580 CALL &A940, 15 


>DX 




>LH 




2590 RETURN 


>FK 


>C8 


2600 REM *#)HHHHHHHHHHHHHI*#*#**#* 


m 




2610 REM Restitution des X et Y 


>ZE 




2620 REM ************************ 


>m 


/HP 


263» X=X«em : Y=Ymem 


>PT 




2640 Trans=0 


>JJ 


,>HYi 


l2650 RETURN 




>FB 



2660 REM ************************** >KM 

************* 

2670 REM Dépassements de capacité >TR 

arithmétique 

2680 REM *********************iti*** >KP 

************* 

2690 XmeiFX : Yme«=Y >PZ 

2700 IF ERR=6 OR ERR=li THEN X=-X+MA >RB 

X(ABS(Xmin),ABS(Xuax))/'20t»0 : Y=Y+ 

MAX(ABS(Yi»in),AB5(Ymax))/2000» 

2710 Trans=l >JH 

2720 IF ERL=2420 THEN RESUME 2420 ,'ZP 

2730 IF ERL=1740 THEN RESUME 1720 >ZX 

274» IF ERL=181» THEN RESUME 179» )ZD 

2750 REM ************************** >HK 

*********** 

2760 REM Datas pour la génération >NC 

des trames 

2770 REM ************************** >HM 

*********** 

278» DATA E5,D5,11,0,C0,ED,52,7C,CB >ZQ 

, 3F, CB,3F,CB,3F,li, 0,0,5F, DD,E5,BD, 

21,27 

279» DATS.A9,DB,19,D»,56,«,7S,A?,47 >YD 

,DD,E1,D1,E1,C3,68,C 

2800 DATA FE,1,C0,DD,7E >QR 

2816 DATA «,FE,i0,D0,CB,27,CB,27,CB >UL 

,27,21,0,AA, 11,0,0,5F, 19,11, 27, A9,l 

■ 8 

2820 DATA 0,ED,B0,C9 >NP 

2830 DATA 0,0,0,0,0,0,0,0 >BX 

284» DATA 0,64,0,8,0,64,0,8 >TB 

2850 DATA 8,128,4,64,2,32,128,8 >XK 

2860 DATA 0,34,0,136,0,34,0,136 >WT 

2870 DATA 132,32,132,32,132,32,132, >BZ 

32 

2880 DATA 136,34,136,34,136,34,136, >CT 
34 

2890 DATA 146,73,146,73,146,73,146, >CL 
73 

2900 DATA 170,85,170,85,170,85,170, >CC 
85 

291» DATA 170,85,170,85,170,85,17», >CD 
85 

2920 DATA 109,182,109,182,109,182,1 >FJ 
09, 182 

2930 DATA 119,221,119,221,119,221,1 >FN 
19,221 ' 

2940 DATA 123,223, 123,223, 123,223, 1 >FB 
23,223 

295» DATA 255,221,255,119,255,221,2 >FH 
55,119 

2960 DATA 247,127,251,191,253,239,1 >FU 
27,247 

2970 DATA 255,191,255,247,255,191,2 >FC 
55,247 

2980 DATA 255,255,255,255,255,255,2 >FD 
,55,255» 



U.T.|«L.|«T-A«I«R.E 



PRET 




Avant de vous lancer 
dans de folles 
dépenses et de vous 
approprier l'objet 
convoité, livrez-vous à 
ce petit exercice : 
tapez le listing suivant 
et choisissez l'option 
du menu qui vous 
convient parmi la 
recherche sur prêt, la 
valeur acquise et la 
valeur actuelle. De 
quoi vous décourager 
ou bien vous inciter à 
vous offrir une 
nouvelle voiture (par 
exemple). 



• Didier 
RUYFFELAERT 




1 ' PROGRAMMATION FAITE PAR DIDIER >FA 

RUYFFELAERT SUR AHSTRAD CPC 4128 «0 

N0CHR0NE 

10 'm************************ PRE >LA 

T . BANQUE **#****##*****»**#***#** 

20 MODE 2 >BF 

30 LOCATE 19, 4l PRINT" i- Prêt" >ZA 

40 LOCATE 10,4:PRINT"* recherche 5 >VU 
ur prêt " 

58 LOCATE 11,7:PRINT'- 2 - capital" >FC 



48 LOCATE 11, 8: PRINT"- 



■ durée" 



CN 



78 LOCATE 11,9:PRINT"- 4 - tau* ann >LD 

uel" 

88 LOCATE iô, 11: PRINT"» valeur acq >PH 

uise" 

98 LOCATE 11, 12SPRINT"- 5 - capital >6N 

100 LOCATE 11,13:PRINT"- 6 - suite >BN 

de versements" 

lie LOCATE 18, 15! PRINT"* valeur ac >RM 

tuelle" 

120 LOCATE tl,l6:PRINT"- 7 - capita >HV 

1" 

130 LOCATE 11, 17: PRINT"- 8 - suite >BF 




de versements" 

148 LOCATE 50,20:LINE INPUT "choix 

:";a$ 

159 IF (ML (a$) < 1 OR VAL (a») > B 
THEN 148 

160 IF a* = 
178 IF a* = 
188 IF a* = 
198. IF a* = 
200 IF a* = 
218 IF al = 
228 IF a* = 
238 IF a* = 



THEN 2328 
THEN 248 
THEN 768 
THEN 1388 
THEN 1988 
THEN 4468 
THEN 2118 
THEN 4928 



ZPH 
/NN 
>NY 
>PL 
>PK 
>PR 
>PH 
>Ps 

248 ****************************** >RG 
** P CAPITAL ********************** 
***** 

258 MODE 2 >H6 

268 LOCATE 32,2:PRINT"RECHERCHE CAP ,'LB 
ITAL" 

278 LOCATE 16,6 >ïD 

288 PRINT'BUREE DU PRET (en année) >M 



298 LOCATE lé,B:PRINT"REBBOURSEMENT 

S (miensuei 

308 LOCATE 25,9 

318 PRINT"(t)riffle5triel " 

320 LOCATE 25,10 

330 PRINT" (s)enestriel " 

348 LOCATE 25, Il 

358 PRINT" (a)nnuel" 

368 LOCATE 10,13 

378 PRINF'TAUX ANNUEL ;" 

3B8 LOCATE 18,15 

398 PRINT"selon banque, méthode de 



■m 



calcul du taux a retenir " 
408 LOCATE 25,18 
418 PRINT"2- intérêts composes" 
428 LOCATE 25,17 
438 PRINT"1- intérêts simples" 
440 LOCATE 10,21 
458 PRINT"REHBOURSEI€NT SOUHAITE : 



•ZD 
•EF 
•W 
•EJ 
>RN 
■ES 
>VH 
>FA 
>CF 

;FC 
>H5 
>FD 
>BE 

>EE 



570 LOCATE 23, 13: INPUT taux 

5B8 IF taux < 8 OR taux > 108 THEN 

570 
598 LOCATE 4B, 19 
600 LINE INPUT "choix :":a* 
618 IF a* = "1" OR a$ = "2" THEN 6 
28 ELSE 590 

620 IF a* = "1" THEN t = Itaux ; d 
u) / 188 ELSE t = <( 1 ♦ (taux/100) 
! " (1/du) i " 1 
630 LOCATE 34.21 
648 INPUT loyer 
658 IF loyer <= 8 THEN 638 
668 capital = (i/(t/!t-(i+t!'-d)ï)* 
lover 
678 LOCATE 27,23:PRINT"CAPITAL FIXE 

A :";:PR1NT USIN6"#*##t#.##":capit 
al 

688 LOCATE 29,25 
690 PRINT "(s)uite - (i)mprimante " 



780 q* = INKEY* >TJ 

710 IF q*= "s" OR qj~"l" THEN 720 ,>FZ 
ELSE 788 

720 IF qs="s" THEN RUN >QB 

738 li = 1 >ZC 

748 SOSUB 4990 /RE 

750 60T0 700 >ZF 

768 '#***************************** ;TD 
R DUREE ************************** 



770 MODE 2 

789 LOCATE 32,2:PRINT"RECHERCHE DUR 
EE" 

790 LOCATE 10.6 

800 PRINF'CAPITAL EMPRUNTE : " 
B10 LOCATE 10,8:PRINT"REMBOURSEMENT 
S (ntiensuel " 
820 LOCATE 25,9 



468 LOCATE 37, 6: INPUT durée M 
478 IF durée <= THEN 460 >RY 
488 LOCATE 37,12:LINE INPUT "choix ZKY 

:"ia* 

498 IF a*=V OR a* = "t" OR a* = >B¥ 
"s" OR ai = "a" THEN 508 ELSE 4B0 
580 IF a* = "a" THEN 518 ELSE 520 >WY 
510 d = durée * 12 : du = 12: 60T0 >ZH 

578 

528 IF a$ = "t" THEN 538 ELSE 548 >XD 
538 d = durée * 4 : du = 4: GOTO 5 >XA 
70 

548 IF a» = "s" THEN 558 ELSE 568 >XJ 
558 d = durée * 2 : du « 2: 60T0 5 >XY 
70 
560 d = durée : du = i >MK 



83s 



850 
860 



898 

900 

910 



PRINT* (t)rimestnel " 

LOCATE 25, 10 

PRINT" (si emestriel " 

LOCATE 25,11 

PRINT"(a)nnuel" 

LOCATE 10,13 

PRINPTAUX ANNUEL :" 

LOCATE 18.15 

PRINT"seion banque, méthode de 



calcul du taux a retenir " 
928 LOCATE 25,18 
938 PRINT"2- intérêts composes" 
940 LOCATE 25,17 
950 PRINT"!- intérêts simples" 
968 LOCATE 18,21 
970 PRINF'REHBOURSEHENT EFFECTUE 



988 LOCATE 28,6: INPUT capital 
998 IF capital <> THEN 9B0 



>*• 1008 LOCATE 37, 12:LINE INPUT "choi >LV 
>BN x :";a$ 

1810 IF a*="«" OR a» = "t" OR a* = ;EH 
>GJ "s" OR a* = "a" THEN 1020 ELSE 100 
>XF 
•EN 1820 IF a» = "m" THEN 1038 ELSE 10 >ZC 

40 
;UE 1030 du = 12: GOTO 1898 >PH 

1040 IF a» = "t" THEN 1850 ELSE 10 >ZR 

60 
;FB 1050 du = 4; GOTO 1898 >ND 

>LK 1868 IF a* = "s" THEN 1078 ELSE 18 ;>ZX 
>RM 80 
>SP 1078 du = 2: GOTO 1090 >ND 

1088 du = 1 ,'EH 

>ZJ 1090 LOCATE 23, 13: INPUT taux >XH 

1100 IF taux < OR taux > 100 THEN >CT 
1090 
>FD 1110 LOCATE 48,19 >LG 

)JG 1120 LINE INPUT "choix :";a$ >YB 

1130 IF a$ = "1" OR a$ = "2" THEN 1 >GR 

148 ELSE 1118 

1140 IF a* = "1" THEN t = itaux ,' d >UJ 

u) / 100 ELSE t = <( 1 + (taux/100) 

! " (S/du) i - 1 

1150 LOCATE 34,21 >LY 

1160 INPUT loyer >HR 

1170 IF loyer <= THEN 1150 >U6 

1180 durée = 1 -(( t * capital) / I ZDV 

oyer î 

1190 IF durée ■■■= THEN RUN >UE 
>JD 1200 durée = LOG (durée!/ LOG (1 + >AD 
>HF t) 

1210 LOCATE 27,23:FRINT"0UREE FIXEE >XP 
>ZA A :";:PRINT USIN6"M#*#*.## ,, :-dure 
)AE e 
/BK 1220 LOCATE 29,25 /LE 

1230 PRINT "(s)uite - (î)mprimante >KC 
>YD " 

>ZL 1248 q$ = INKEY* >ZA 

>FC 1250 IF q*= "s" OR q$="i" THEN 1260 >HH 
>YC ELSE 1240 

>FF 1260 IF q*="s" THEN RUN >QN 
>RD 1278 H = 1 >EE 

:>FD 12B8 GOSUB 4990 >YF 

ZVQ 1298 60T0 1240 >MG 

>EJ 1380 '***************************** >X6 
/CD * R . TAUX ************************ 

** 
>FK 1310 «ODE 2 /PB 

/HE 1320 LOCATE 32,2:PRINT"RECHERCHE TA >HQ 
ZGA UX" 

m 1330 LOCATE 10,6 >DD 

>FB 1340 PRINT"DUREE DU PRET (en année! >KC 
/GL : « 

1358 LOCATE 10,8:PRINT"REMBOURSEMEN >CH 
>YC TS (m)ensuel 
>UW 1360 LOCATE 25,9 /EF 



-■■.■■■■:.■.'■ 



137* PRINT" St)rimestrisl " 


>AJ 


1380 LOCATE 25, 10 


>LB 


1390 PRINT" (sieaestnel " 


>ZA 


i486 LOCATE 25,11 


>LV 


1418 PRINT" (a)nnuel" 


>RA 


1428 LOCATE 18, 13 


>LT 


1438 PRINTWITAL EMPRUNTE ;" 


JflN 


1448 LOCATE 18, 15 


>LX 


1458 PRINT"3eion banque, méthode de 


/DB 


calcul du taux a retenir " 




1460 LOCATE 25, 18 


>LJ 


1478 PRINT"2- intérêts composes" 


>JC 


1488 LOCATE 25,17 . 


>LK 


1498 PRINT"!- intérêts simples" 


:>8U 



1508 LOCATE 18,21 >L0 

1510 PRINT"REHBOURSEMENT EFFECTUE : >HH 

1528 LOCATE 37.6: INPUT durée >XV 
1530 IF durée <= THEN 1520 >UJ 
1540 LOCATE 37,12:LINE INPUT "chois M 
:";â* 

1550 IF a$=V OR a* = "t" OR a* = €K 
"s" OR a* = "a" THEN 1568 ELSE 1540 

1560 IF al = "m" THEN 1570 ELSE 150 >2F 
8 

1570 d = durée « 12 : du = 12: 60T0 >A6 
1638 
1580 IF a$ = "t" THEN 1590 ELSE 160 >ZK 


1590 d = durée * 4 : du = 4: SOTQ 1 >ZN 
630 



1668 IF a* = "s" THtN 1610 ELSE 162 


>ZN 


1610 d = durée « 2 : du = 2: BOTO 1 


>ZB 


630 




1620 d = durée : du = 1 


>NF 


1638 LOCATE 28. 13: INPUT capital 


>AR 


1648 IF capital '.- 8 THtN 1638 


,'HH 


1650 LOCATE 46,19 


>LR 


1668 LINE INPUT "choix :";a* 


>YL 


1670 IF a* = "1" OR a* = "2" THEN 1 


>SB 


6B8 ELSE 1650 




1688 LOCATE 34,21 


>L» 


1690 INPUT loyer 


m 


1706 IF loyer ',- 8 THEN 1688 


:>UP 


1718 IF (loyer * d! •= capital THEN 


.>EM 


RUN 




1728 ta = loyer 7 capital 


)TK 


1730 ta = CINT (ta » 10000! 


>RF 


1740 taux = 26 


>KD 


1750 IF s* = "1" THEN t = (taux / d 


>UR 


ul / 100 ELSE t = (( 1 ♦ (taux/100) 




! " il/du) ! - 1 




1760 1 = i t / ( 1 - (l+t)'-d)) 


;RL 


1770 1 = CINT (1 * 10800! 


;>PU 



! 1780 IF I = ta THEN 1810 >PD 

1798 IF 1 > ta THEN taux = taux * >YX 
.75 ELSE taux = taux » 1.5 

1800 60T0 1758 >MK 

1818 LOCATE 27,23:PRINT"TAUX ANNUEL >DL 
FIXE ft :";:PRINT USINS"######.I##" 
: taux 

1828 LOCATE 29,25 >ll 

1836 PRINT "(s)uite - uSmprimante >KJ 

1846 q$ = INKEV* >Z8 

1850 IF q>= "5" OR: q*="i" THEN 1860 >HS 
ELSE 1846 

1860 IF ql="s" THEN RUN >QV 

1B70 li =1 > C A 

1888 GOSUB 4990 >ZB 

1890 BOTO 1B40 >NJ 

1906 'a**************************** >ïC 

* V . ACQUISE C ******************* 
#* 

1910 HOUE 2 >0C 

1920 LOCATE 25,2:PRINT"VALEUR ACQU >CT 

ISE PAR UN CAPITAL" 

1938 LOCATE 16,5:PRINT"duree (en mo ;PC 

is) :" 

1948 LOCATE 16, 16:PRINT"capital p" /Fr, 

1958 LOCATE 16, 15:PRINT"taux annuel >LS 

1968 LOCATE 27,5: INPUT durée ,>XB 

1978 LOCATE 21, 10: INPUT capital >AN 

1980 LOCATE 23. 15: INPUT taux >X« 
1996 taux = (1 + (taux / 100))"ii/l- >AF 

2866 t = tauï'duree >NF 

2616 va = capital * t >NP 

2020 LOCATE W, 1 8: FR INT "VALEUR ACOU >VJ 
ISE :"::PRINT USIN6"####t#t.#t"sva 

2030 LOCATE 29,25 >LE 

2846 PRINT "(s)uite - (imprimante >KC 

2050 q* = INKEV* >ZA 

2060 IF q*= "s" OR q*="i" THEN 2076 >HM 
ELSE 2050 

2070 IF q*="s" THEN RUN >0N 

2080 li = 1 >EE 

2090 GOSUB 4990 >YF 

2160 GOTO 2050 >LH 

2110 '****************************# >XG 

* v . ACTUELLE CAPITAL ************ 
** 

2128 HOBE 2 , >P6 

2130 LOCATE 25,2:PRINT"VALEUR ACTU :>AD 

ELLE D'UN CAPITAL" 

2140 LOCATE 10,5:PRINT"duree (en mo >PH 

is! :" 

2150 LOCATE 10, 10;PRINT"capital :" >FD 

2160 LOCATE 18, 15:PRINT"taux annuel >LA 



2178 LOCATE 27,5: INPUT durée 

2180 LOCATE 21, 18: INPUT capital 

2190 LOCATE 23, 15: INPUT taux 

2280 taux = il + (taux 7 i80))"(l/l 

2) 

2216 t = taux'-duree 

2228 va = capital t t 

2230 LOCATE 40,1B:PRINT"VALEUR ACTU 

ELLE :":: PRINT USING"#######.##":va 



2240 LOCATE 29,25 

2250 PRINT "isiuite - !l! 



rimante 



;lH 
>KF 



2260 q* = INKEV* 

2270 IF q*= "s" OR q*="i" THEN 2286 
ELSE 2260 

22B0 IF q*="s" THEN RUN 
2290 li = 1 
2306 GOSUB 4996 
2318 BOTO 2266 

2320 ' ***************************** 
* PRET *************************** 
2330 MODE 2 

2340 LOCATE 38,2:PRINT"PRET" 
2350 LOCATE 10,4 
2360 PRINT'TOREE DU PRET :" 
2370 LOCATE 10,6 
2380 PRINFREMBOURSENENTS «iensuel 

2398 LOCATE 25,7 
2480 FRINT'Stlnmestriel " 
2410 LOCATE 25,8 
2420 PRINT" (siemestriel " 
2430 LOCATE 25,9 
2440 PRINT" (a)nnuel 
2450 LOCATE 16,11 
2460 PRINT-TAUX ANNUEL :" 
2476 LOCATE 18, 13 

2480 PRINT'selon banque, méthode de 
calcul du taux a retenir " 
2490 LOCATE 25, 16 
2560 PRINT"2- intérêts composes" 
2510 LOCATE 25, 15 
2520 PRINT"!- intérêts simples" 



>DE 

iXP 
>DJ 

>NB 

>EH 

;>ad 
:>EB 
>ZV 
>EE 
>UB 
ÎLV 
>VR 
>LZ 



2530 LOCATE 10,19 >LC 

2546 PRINT'CAPITAL EMPRUNTE :" >AR 

2550 LOCATE 10,21 >LX 

2560 PRINT"MONTANT ASSURANCE EN I ( >ZA 
c.a = 0.54 t ! ;" 

2570 ' >¥6 



2588 LOCATE 26, 4: INPUT durée >Xl 
2590 LOCATE 37,10:LINE INPUT "choix >K6 
:";a* 
2600 IF a*="m" OR a* = "t" OR a* = >EK 



rl6< 



■>.-■ .-' .:■;■:- 



2610 IF a* = "m" THEN 2420 ELSE 243 
2620 d - durée * 12 : du = 12: ec = 


>ZN 


>6H 


1 : GOTO 2680 




2630 IF a* = "t" THEN 2640 ELSE 265 
2640 d = durée * 4 : du = 4; ec = 3 


;ZK 


>EP 


: GOTO 2680 




2650 IF a* = "5" THEN 2660 ELSE 267 

e 

2640 d = durée » 2 : du = 2: ec = 4 


>ZQ 


>E0 


: GOTO 2680 




2670 d = durée : du = 1 : ec = 12 


>uu 


2680 LOCATE 23,11:INPUT taux 


>JP 


2690 IF taux < OR taux > 100 THEN 


>DB 


26» 




2780 LOCATE 48, 17 


>LL 


2710 LINE INPUT "chois :";al 


)VH 


2720 IF a$ = "1" OR a* = "2" THEN 2 


>BL 


730 ELSE 2700 




2730 IF a* = "1" THEN t = (tau* / d 


>UQ 



"s" OR a* = "a" THEN 2610 ELSE 2590 1 2960 PRINT #l,USIN6"#####";ii 



2970 PRINT #7,USINS"»r;cpteur;:PRI 

NT #7,"."( 

2980 PRINT t7,USINS"«i";annee 

2990 PRINT #2,UBIN6"*#»*##.»#";capi 

tal 

3000 intérêt = capital » t 

3010 PRINT #3,USINB"#*##t».tr;inte 

ret 

3020 inte = inte + intérêt 

3030 inter = inter + intérêt 

3040 amort = loyer - intérêt 

3050 amorti = amorti + amort 

3060 PRINT #4,USIN6"#**#t».*#"iamor 

t 

3070 PRINT #5,USING "»###»*.##"; loy 

er 

3080 as = ((capital ♦ assur)/100)/d 

u 

3090 PRINT #6,USINS "*##t##.t#";a5 

3100 ass ~ ass + as 
3110 assu = assu + as 
3120 capital = capital - amort 
3130 cpteur = cpteur + ec: compteur 
= compteur + 1 

3140 IF compteur = 25 THEN SOSUB 42 
10 ELSE 3160 
3150 SOSUB 3930 
3160 IF du = 1 THEN 3610 
3170 IF cpteur > 12 THEN 3180 ELSE 
3610 

3180 cpteur = cpteur - 12: année = 
année + 1 

3190 IF année > 99 THEN année = 1 
3200 PRINT 11, 
3210 PRINT #2,"' 
3220 PRINT #3, 
3230 PRINT #4,'" 
3240 PRINT 15, 
3250 PRINT #6, 
3260 PRINT 17, 
3270 compteur : 
3280 IF compteur 
10 ELSE 3380 
3290 SOSUB 3930 
3300 PRINT #1,"" 
3310 PRINT #2,"" 
3320 PRINT *3,"" 
3330 PRINT #4,"" 

3349 PRINT #5," 

3350 PRINT #6,"" 
3360 PRINT #7,"" 

3370 compteur = compteur + 1 

3380 PRINT #1,"". 

3390 PRINT #2,"" 

3400 PRINT #3,USIN6 "#t*#l*.*#";int 



u) / 100 ELSE t = il 1 + (taux/400) 
) '■ il /du) i - 1 
2740 LOCATE 28, 19: INPUT capital 
2750 IF capital < THEN 2740 
2760 LOCATE 51,21: INPUT assur 
2770 IF assur < THEN 2760 
2780 LOCATE 10,23 

2790 INPUT "MOIS, ANNEE DE DEPART D 
ES REMBOURSEMENTS :"idepart 
2800 IF départ < 1 OR départ > 12 T 
HEN départ = 1 
2B10 LOCATE 58,23 
2820 INPUT année 

2830 IF année < 1 OR année ) 99 THE 
H année = 1 

2840 LOCATE 29,25:PRINT. "(s)uite - 
(iimprimante " 
2850 qt = INKEYt 

2860 IF n$= "s" OR qt="i" THEN 2870 
ELSE 2850 

2870 IF q*="s" THEN 2900 
2880 li = 1 
2890 BOSUB 4990 
2900 



it 



( 1 - (l+t»'-d)) >FS 



2910 loyer 

* capital 

2920 SOSUB 3930 

2930 cpteur = départ: inte = 0;ass= 

0:as = 0:compteur = 4 
2940 inter = : amorti = îassu = 


2950 FOR il = i TO d 



>YA 
>VF 

;>AG 

>LRi' 



: compteur + 1 

■■ 25 THEN SOSUB 41 



3410 inte = >VH 

3420 PRINT #4, "" >ZH 

3430 PRINT 15,"" 'M 

3440 PRINT #6, USINE "»#!###. ##": ass >BB 



3450 PRINT #7,"" 






>AD 


3440 ass= 






>PB 


3470 compteur = 


compteur + 1 




>WB 


3480 IF compteur 


= 25 THEN GOSUB 42 >H8 


10 ELSE 3510 








3490 SOSUB 3930 






JïD 


3500 BOTO 3610 






)MF 


3510 PRINT #1,"' 






>ZE 


3520 PRÎNT »2,"' 






?zs 


3530 PRINT #3,"' 






JZJ 


3540 PRINT *4,'" 






>AA 


3550 PRINT #5,"' 






>AC 


3560 PRINT #6,'" 






>AE 


3570 PRINT #7,'" 






>AB 


3580 compteur = 


compteur + 1 




>m 


3590 IF compteui 


= 25 THEN SOSUB 42 


>m 


10 ELSE 3610 








3600 BOSUB 3930 






m 


3610 NEXT ii 






>EA 


3620 PRINT #3,"' 






?ZJ 


3630 PRINT #4,'." 






;AA 


3640 PRINT #5, " 






>AC 


3450 PRINT *4,"' 






:»ae 


3640 PRINT 17, " 






>AG 


3670 compteur = 


compteur + 1 




>m 


3680 IF compteur 


= 25 THEN GOSUB 42 


>MU 


10 ELSE 3700 








3690 SOSUB 3930 






>VF 


3700 PRINT #1," 






>ZF 


3710 PRINT 12," 






>ZH 


3720 PRINT I3,USIN6 "##tt*#.#t" 


int 


;>cj 


3730 PRINT M, " 






>AB 


3740 PRINT K, " 






>ad 


3750 PRINT #6,USING "»#tt#t.##" 


ass 


«F 



3760 PRINT 17,"" >AH 

3770 compteur - compteur + 1 >WE 
37B0 IF compteur = 25 THEN GOSUB 42 >MH 
10 ELSE 3800 

3790 BOSUB 3930 >¥G 

3800 FOR i = 1 TO 2 >CK 

3810 PRINT #<i),"" >LM 

3820 NEXT i >VJ 

3830 FOR i = 3 TO 5 >BH 

3840 PRINT *(i)," " )TD 

3850 NEXT i . M 

3855 PRINT 1(4!/ " >TL 

3860 PRINT #7,'"' >AJ 

3870 PRINT #3,USIN6 "*##*»#.#»"; int >DL 
er 
i 3880 PRINT #4, USINE "#*tMttt.*#";amo >EB 



V17« 






rti 

3890 PRINT #5,USINS "###'###.##"; loy >FP 

er * d 

39» PRINT #6,USINB "######,##";a5s >CA 

u 

3?» BOSUB 4216 MC 

3920 RUN >CC 

3930 '***************************** >YH 

*********************************** 

** 

3949 MODE 2 JÛC 

3959 LOCATE 2,1 ,'XF 

3966 PRINT STRING*j7B.". ") >UH 

3970 LOCflTE 5,2 >YB 

3980 PRINT "N~ DATE CAPITAL >BV 

INTERETS AMORTISSEMENT REMBDUR 
SEMENT ASSURANCE" 

3998 LOCATE 2,3 >VB 

4000 PRINT STRIN6*(78,","i ;UT 
4016 HINDOU #1,2,7,4,24 >QB 



4020 HINDOU #2,19,28,4,24 


>TF 


4930 HINDOU 13,31,42,4,24 


>RF 


404* HINDOU #4,45,56,4,24 


m 


4050 HINDOU #5,59,68,4,24 


>TU 


4860 HINDOU #6,69,79,4,24 


>TB 


4070 HINDOU #7,9,16,4,24 


,'RR 


4660 RETURN 


>FF 


4090 


>VF 


4100 FOR i = 2 TQ compteur-i 


;>ve 


4110 LOCATE 2,i : PRINT"!"; 


m 


4120 LOCATE 3,1 : PRINT"!"', 


,'UJ 


4130 LOCATE 15,1 : PRINT"' 1 ': 


>VE 


4140 LOCATE 29,1 : PRINT":"; 


>VL 


4158 LOCATE 41, i : PRINT":": 


>VF 


4168 LOCATE 55,1 : PRINT"!"; 


m 


4170 LOCATE 69, i : PRINT"!"; 


m 


4180 LOCATE 79, I : PRINT"!"; 


m 


4190 NEXT 


;lf 


4209 RETURN 


>EK 


4210 ***************************** 


>XK 


*********************************** 




4220 SOSUB 4100 


>HF 


4230 compteur = 4 


>LK 


4240 LOCATE 22,25 


;>LC 


4250 PRINT "(s)uite - (î)mprimante 


>FU 


- avec (e in te te" 




4260 q* = INKEY* 


;ZF 


4270 IF qS= "5" OR q*="i" OR q* -"s 


>UL 


• THEN 42B0 ELSE 4260 




42B0 IF q*="s" THEN RETURN 


>UE 


4290 IF q$ = "e" THEN II = 1 ELSE 

li = 4 

4300 IF q* = "i" THEN 4330 


>AQ 


>œ 


4310 PRINT», " LE PRESENT ECHEANCIE 


>JF 


R N'A DE VALEUR QUE POUR SA VALEUR 





I I 

INDICATIVE; EN AUCUN" 

4320 PRINT#B," CAS LE PORTEUR NE PO 

URRA S'EN PREVALOIR." 

4330 q$="" 

4340 ligne = li 

4350 FOR col = 1 TO 80 

4360 LOCATE col, ligne 

4370 b*= COPYCHR*(#0t 

4380 q*= q* + b* 

4390 NEXT coi 

4400 IF q* = STRINS*(B0," ") THEN 4 

450 

4410 PRINT #8,q* 

4420 q* = "" 

4430 ligne = ligne * i 

4440 IF ligne > 24 THEN 4450 ELSE 4 

350 

4450 BOTO 4260 

4460 '***************************** 

* V ACQUISE SUITE **************** 

**** 

4470 «ODE 2 

4480 LOCATE 20,2:PRINT"VALEUR ACQUI 

SE PAR UNE SUITE DE VERSEMENTS" 

4490 BOSUB 4510 

4500 GOTO 4820 

4510 LOCATE 10,6 

4520 PRINT"NOMBRE DE VERSEMENTS : " 



4530 LOCATE 10,8 >EA 

4540 PRINT "VERSEMENTS (ffwensuei /IP 

4550 LOCATE 21,9 >EF 

4560 PRINT" (tirmestriel " 'AN 

4570 LOCATE 21,10 >LB 

4580 PRINT" islemestriel " >ZE 

4590 LOCATE 21,11 >LE 

4600 PRINT "(ai nnuel " .« 

4610 LOCATE 10,15 >LZ 

4620 PRINF'TAUX ANNUEL : " >VR 

4630 LOCATE 10,18 >LE 
4648 PRINPMDNTANT DES VERSEMENTS ; >HJ 

4650 LOCATE 32,6;INPUT durée >XX 
4660 LOCATE 37,12:LINE INPUT "choix /LA 
:";a$ 

4670 IF 3*="»" OR a* = "t" OR a* = >EE 
"5" OR a$ = "a" THEN 46B0 ELSE 4660 

46B0 IF a* = "m" THEN 4690 ELSE 470 >2Q 


4690 d = durée * 12 : du = 12: BOTO >BL 
4750 

4700 IF a$ = "t" THEN 4710 ELSE 472 >ZK 


4710 d = durée * 4 : du = 4: BOTO 4 >ZR 
750 
4720 IF a» = "s" THEN 4730 ELSE 474 >ZP 



473» d = durée * 2 : du = 2: GOTO 4 >ZP 

750 

4740 d = durée : du = 1 >NH 

4750 LOCATE 23, 15: INPUT taux >XU 

4760 IF taus < OR taux > 100 THEN >DB 

4750 

4770 LOCATE 34,18 >LR 

4780 INPUT capital >NH 

4790 IF capital < THEN 4770 >V8 

4800 t= il 1 + (taux/100)! "■ il/du) >AB 
! - 1 

4810 RETURN >FB 

4820 loyer = ((((l+t)"duree)-ii/ti* >KV 

capital 

4830 LOCATE 40,20:PRINT"VALEUR ACQU )7A 
ISE :";;PRINT USING"t##t##t.##"; loy 
er 

48 > 40 LOCATE 29,25 >LR 

4850 PRINT "(siuite - (i)mpriffiante >KF 

4860 q* = INKEY* >AB 

4870 IF q*= "5" OR q*="i" THEN 4880 >HY 
ELSE 4860 

4880 IF q$=V THEN RUN ;flA 

4890 11 = 1 >FF 

4900 BOSUB 4990 >¥H 

4910 GOTO 4660 >NK 

4920 ***************************** >YH 

* V ACTUELLE SUITE **************** 
**** 

4930 MODE 2 >0C 

4940 LOCATE 20, 2: PRINT "VALEUR ACTUE >UL 

LLE D'UNE SUITE DE VERSEMENTS" 

4950 SOSUB 4510 /VA 

4960 loyer - (il - ((l+U'-dureei) >MC 

/ t ) * capital 

4970 LOCATE 40,20;PRWT"VALEUR ACTU >BQ 

ELLE :";:PR1NI USIN6"#»#tttÈ»«.##";io 

ver 

4980 GOTO 4840 >PE 

4990 ***************************** >ZE 

* imprimante ********************** 
***** 

5000 q*="" >DB 

5010 FOR ligne = li TO 24 >RH 

5020 FOR coî = 1 TO 80 >ND 

5030 LOCATE col, ligne >QV 

5040 b*= COPYCHR»(t0! -f'U 

5050 q$= q* + b$ >EJ 

5060 NEXT col >PA 

5070 PRINT #8,q$ >FD 

5080 q* = "" >EB 

5090 NEXT ligne >HH 

5100 RETURN >EK 
5110 '***************************** >XK 
*********************************** 
! ****• 



u 



L • I 



RESISTOR 




RESISTOR est un 
programme destiné 
à calculer la valeur 
des résistances les 
plus courantes sur 
le marché : les 
résistances aux 3 
bagues dont la 
valeur se calcule par 
le célèbre code des 
couleurs. 

•Emmanuel GUILLARD 



Pour les électroniciens en herbe, un 
petit cours est inclus dans le 
programme, afin qu'ils comprennent 
à quoi sert une résistance et la façon 
de calculer sa valeur. 
Une notice y est comprise. Comme elle 
est un peu succincte, je vais vous la 
détailler : 

L'écran se décompose en cinq ta- 
bleaux : 

A droite : le tableau dit "de travail". 
C'est dans cette fenêtre que se déroule 
le programme. 

Au milieu, en haut : le tableau dit "de 
résultats". La valeur de la résistance 
calculée ainsi que les couleurs corres- 
pondantes y sont inscrites. 
Au milieu, en bas : l'indispensable 
tableau des couleurs indiquant les dif- 
férentes couleurs et leur numéro 
correspondant. 

A gauche, en bas : second tableau 
indispensable : celui des multiplica- 
teurs. Y sont indiquées les valeurs- de 
multiplicateurs de chaque couleurs : 
or, noir, marron, rouge, orange, 
jaune, vert et bleu. 



- 


-•■• 




j - ;; ■* « • ;i 




. 


. îSfec 


2 


s .:■ ' • =,! 


su ! 


- 


...... 




siwe •; --.t 


Ë a P ; « 




| : < 3.1 î 


, 4 


s g s • a 


»;:! ; 



VARIABLE 


FONCTION 


COULS (10) 


Tableau renfermant chacune des cou- 
leurs, numérotées de à 10 


MULTS (7) 


Tableau renfermant les valeurs 
alphanumériques des multiplicateurs 
correspondant aux couleurs, numé- 
rotées de à 7 j 


NRCL (10) 


Tableau renfermant le numéro de 
chacune des couleurs 


MDEC 


Variable correspondant au MODE 
DE TRAVAIL j! 
MDEC = f : mode couleur 1 
MDEC * 2 : mode chiffre [ 


MDC$ 


Valeur alphanumérique du mode de 1 
travail : couleur ou chiffre jj 


LIGNE 


Variable indiquant le sous- 
programme à brancher, suivant le 
mode, après appui sur une des tou- 
ches du menu. 


VALEUR1S 


Valeur alphanumérique du n° de la 
l ere couleur 


VALEUR2J 


Valeur alphanumérique du n° de la 
2 e couleur 


VALEUR3S 


Assemblage de VALEUR1S et 
VALEUR2S dans cet ordre 


■VALEUR 


Valeur de la résistance 



'19'' 



A gauche, en haut : le tableau récapi- 
tulatif des touches à utiliser et leur 
effet. 

UTILISATION 

Ce programme fonctionne suivant 
deux modes différents : 

a. Mode couleur : on entre chacune 
des couleurs et l'ordinateur calcule la 
valeur correspondant à l'association 
de ces couleurs. 

Remarque : le programme débute 
sous ce mode. 

b. Mode chiffre : cette fois on entre 
les deux premiers chiffres et la valeur 
du multiplicateur, le tout pour obte- 
nir les différentes couleurs. 

Les touches : 

Z - X : choix de la première couleur 
ou du premier chiffre suivant le mode. 

C - V : choix de la seconde couleur 



ou du second chiffre, suivant le mode. 
B - N : choix de la troisième couleur 
ou du multiplicateur, suivant le mode. 
ENTER : validation après choix des 
trois couleurs'* ou des deux chiffres 
+ multiplicateur, suivant le mode. 

RESULTAT 

Le résultat s'affiche dans le tableau 
des résultats : on obtient la valeur de 
la résistance cherchée et les trois 
couleurs, à lire de gauche à droite 
pour les avoir dans l'ordre, 
correspondant à la valeur. 

* En effet seules trois couleurs sont 
utilisées alors que sur une résistance, 
il en existe une quatrième, un peu plus 
espacée des autres qui correspond à la 
tolérance. Elle n'est pas indispensable, 
c'est pourquoi elle n'est pas 
représentée dans le programme. 



5 CALL M4E:CALL &8B00 >0T- 


10 ' 




>LA 


26 ' 




>LB 


30 ' 


KANUSOFT 


>LC 


4B ' 


ET CPC 


>LD 


50 ' 


^ PROPOSENT 


>LE 


69 " 




>LF 


70 ' 


R ES I S T OR 


>LG 


80 ' 




>LH 


W 


>LJ 


100 


:>RB 


110 ' MODE D'EMPLOI 


>RC 


120 H 


ODE 2: BORDER 0:1 


« 0.0: MK 1.1 >CZ 



130 LOCATE 24.2:PR1NT "R E S 1 S T >ZA 
OR ici 1987 E.B." 
148 LOCATE 8.7:PR1NT "COMME SON NOM M 
L'INDIOUE .RESISTOR EST UN PROBRA 
MME TRAITANT" 

150 LOCATE B,9:PRINT "CES COMPOSANT >VU 
S ET PLUS PARTICULIEREMENT LE CA 
LCUL DE LEUR" 

160 LOCATE B.UsPRINT "VALEUR ." >A¥ 
170 LOCATE B.13:PRINT "SON UTILISAT >ZV 
ION EST SIMPLE : IL SUFFIT DE PRESS - 
ER LES TOUCHES" 

1B0 LOCATE 8, 15: PR1NT "CORRESPONDAN >CD 
TES POUR CHAN6ER LA VALEUR OU LA CO 
ULEUR AFFICHEE .". 

190 LOCATE 8,17:PRINT "LA VALIDATIO >BA 
N SE FAIT A L'AIDE DE LA TOUCHE <EN 
TES). " 

200 LOCATE 1,25:PRINT "UNE TOUCHE . 
,,":CALL MB06:CLS 
210 LOCATE 24,2:PRINT "R E S I S T 
R ic) 19B7 E.B." 
220 LOCATE 28, 4: PRINT "NOTION DE RE 
SISTANCE" 



230 LOCATE B,6:PRINT "UN RESISTOR E >UH + 
ST UN PETIT COMPOSANT UTILISE EN EL 
ECTRONWUE" 

240 LOCATE B,8:PRINT "ET OUI A POUR >UE 
EFFET DE LAISSER PLUS OU MOINS Bit 
N PASSER LE" 

250 LOCATE S,10:PRINT "COURANT ELEC >UE 
TRIQUE . IMAGINEZ UNE CANALISATION 
ENTARTREE :" 

260 LOCATE B,12:PRINT "L'EAU EPROUV >WR 
E PLUS OU MOINS DE MAL A PASSER A T 
RAVERS CELLE-" 

270 LOCATE B.14:PRINT "CI . LE RESI >ÎN 
STOR CORRESPOND DONC A CE PETIT TUY 
AU ET LA RESIS-" 

280 LOCATE 8, 16: PRINT "TANCE DE CE >CU 
RESISTOR CORRESPOND AU TARTRE DU TU 
YAU.LA RESISTAN-" 

290 LOCATE B.lBlPRINT "CE S'EXPRIME >A6 
EN OHM <":CHR*(191);") ET SE CALCU 
LE EN MULTIPLIANT" 

300 LOCATE 8,20:PRINT "L'INTENSITE >Y0 
(EN AMPERES) PAR LA TENSION !EN VOL 
TS) DU COURANT" 

310 LOCATE B,22:PRINT "QUI PARCOURT >RB 
LE RESISTOR, D'OU LA CELEBRE FORMU 
LE :R=U/I " 

320 LOCATE 8,24:PRINT " (R=RESISTANC >NW 
E.IHENSION. ^INTENSITE) ." 
330 LOCATE 1,25:PRINT "UNE TOUCHE . >¥B 
..":CALL 8»6:CLS 

340 LOCATE 24,2:PRINT "R E S I S T >ZD 
OR (c) 1987 E.B." 
350 LOCATE 28,4:PRINT "NOTION DE RE >PB 
SISTANCE" 

360 LOCATE B.6:PRINT "UN RESISTOR A >UH 
, UNE FORME CYLINDRIQUE ET 3 BAGUES ' . 
'DE COULEURS" 



CHARGEMENT 

Taper le listing qui suit et le 

sauvegarder sous le nom de 

"RESISTOR". 

Il ne restera plus qu'à faire 

RUN"RESISTOR" pour lancer ce 

programme. 

AVERTISSEMENT 

Pendant la frappe du listing, ne vous 
amusez pas à taper un RUN, car la 
première ligne contient l'appel d'une 
routine qui inhibe les interruptions 
(autrement dit il n'est pas possible de 
faire un break !). De même, à la fin, 
sauvegardez avant de lancer, sinon 
vous seriez obligé de faire un reset 
total de la machine. Fâcheux, non ? 
C'était plus fort que moi, je n'ai pas 
pu y RESISTER ! (Je sais, c'était 
facile mais je tenais quand même à la 
sortir). 

370 LOCATE 8,B:PRINT "SONT PEINTES >ZM 
SUR CELUI-CI , CES COULEURS PERMETT 
ENT DE C0NNAI-" 

380 LOCATE 8. 10: PRINT "TRE LA VALEU >MC 
R DE LA RESISTANCE . ON PROCEDE COM 
ME CECI:" 

390 LOCATE 18,12:PRINT "BAGUE 1:CH1 >Ui / 
FFRE 1" 

400 LOCATE 18,14:PRINT "BAGUE 2:CHI >LH / 
FFRE 2" 

410 LOCATE 18.16:PRINT "BAGUE 3:MUL >UE 
TIPLICATEUR" 

420 LOCATE 8,18: PRINT "EX: 1:R0UGE >ZT 
2:0RAN6E 3;VERT" 

430 LOCATE 8.20:PRINT "VALEUR = (RO >GZ 
U6E+0RANGEWERT =(2+3)*100000=23»l 
09000=2300000 ";CHR*(191I 
440 LOCATE 1,25:PRINT "UNE TOUCHE , >YD 
.."iMLL &BB06:CLS 

450 LOCATE 24, 2: PRINT "R E S I S T >ZF 
R ic) 1987 E.B." 
460 LOCATE 8,6:PRINT "UTILISATION D >UA 
U PROGRAMME : DANS LE TABLEAU EN HA 
UT A 6AUCHE" 

470 LOCATE B,8:PRINT "SONT INDIQUEE >HK 
S LES TOUCHES A PRESSER ET LEUR EFF 
ET ." 

480 LOCATE B,10:PRINT "LE TABLEAU D >HR 
U DESSOUS INDIQUE LES NUMEROS DE CH 
AQUE COULEUR" 

490 LOCATE 8,12:PRINT "ET LEUR VALE >AK 
UR DE MULTIPLICATEUR . A DROITE LE 
TABLEAU INDIQUE" 

500 LOCATE 8,14:PRINT "CHAQUE COULE >WV 
UR ET LEUR NUMERO CORRESPONDANT . A 
U DESSUS EST" 
.510 LOCATE 8,lè:PRINT "DESSINEE UNE >TN 
1 RESISTANCE AVEC SES 3 BAGUES ET LA 



r2CH